如何使用 typeORM 在 nestjs 中创建类型为 Date 和类型为 DateTime 的列?

kri*_*dev 8 mysql orm date typeorm nestjs

我是 Nestjs 的新手。如何设置接受日期格式和日期时间格式的列?

不是在这两种情况下,列是两个不同的列,一个接受日期,另一个接受日期时间。

Car*_*ini 27

您可以在此处查看解释@Column装饰器的文档。在@Column 中有一个名为type ->的选项,您可以在此处指定要为该特定列存储的日期类型。

有关列类型的更多信息,请点击此处

例如(使用PostgreSQL):

@Column({ type: 'date' })
date_only: string;

@Column({ type: 'timestamptz' }) // Recommended
date_time_with_timezone: Date;

@Column({ type: 'timestamp' }) // Not recommended
date_time_without_timezone: Date;
Run Code Online (Sandbox Code Playgroud)

请注意,date_only它的类型是string。有关更多信息,请参阅此问题

希望能帮助到你 :)

  • @CarloCorradini 太棒了!我也喜欢你明确推荐“timestamptz”;) (3认同)
  • 这个答案不正确。typeorm 对于 `type: 'date'` 返回的类型是一个字符串 - 不是时间设置为 0 的日期对象。请参阅 https://github.com/typeorm/typeorm/issues/2176 (2认同)

Jer*_*emy 15

要向此票证添加更多内容,因为甚至没有提到 DateTime:

  /**
   * Start DateTime
   */
  @Column({
    type: 'datetime',
    default: () => 'NOW()',
  })
  @Index()
  start: string;

  /**
   * End DateTime
   */
  @Column({
    type: 'datetime',
    nullable: true,
  })
  @Index()
  end: string;
Run Code Online (Sandbox Code Playgroud)

这是针对那些不想或不需要使用的人

@CreateDateColumn()

@UpdateDateColumn()


Lui*_*ras 5

怎么样 ?

@CreateDateColumn()
created_at: Date;
    
@UpdateDateColumn()
updated_at: Date;
Run Code Online (Sandbox Code Playgroud)

编辑

你可以在这里找到更多信息