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

问题描述 投票:0回答:5

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

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

mysql date orm nestjs typeorm
5个回答
103
投票

您可以在here查看解释@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;

注意

date_only
string 类型。请参阅此问题了解更多信息。

此外,某些事件的自动日期是可能的:

@CreateDateColumn()
created_at: Date; // Creation date

@UpdateDateColumn()
updated_at: Date; // Last updated date

@DeleteDateColumn()
deleted_at: Date; // Deletion date

46
投票

怎么样?

@CreateDateColumn()
created_at: Date;
    
@UpdateDateColumn()
updated_at: Date;

编辑

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


15
投票

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

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

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

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

@CreateDateColumn()

@UpdateDateColumn()


3
投票

我就是这样做的。 name参数代表数据库中的列名。如果您使用内置的装饰器,它将处理更新列,而无需额外的代码。

@CreateDateColumn({ name: 'created_at'})
createdAt: Date;

@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;

@DeleteDateColumn({ name: 'deleted_at' })
deletedAt: Date;

0
投票

只是为了补充... 创建并希望结果仅显示日期时,请使用:

@CreateDateColumn({ 类型: "日期" }) 创建时间:日期 |字符串;

如果没有特别说明,时间也会包含在内

© www.soinside.com 2019 - 2024. All rights reserved.