如何使用TypeORM在NestJS中创建Date和DateTime类型的列?

如何使用TypeORM在NestJS中创建Date和DateTime类型的列?

如果你在使用TypeORM和NestJS进行数据库开发,你可能会遇到需要创建Date和DateTime类型的列的情况。这里提供一些解决方法。

阅读更多:MySQL 教程

创建Date类型列

对于Date类型,我们可以使用TypeORM中的Date类型。在实体中使用以下代码:

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class MyEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ type: 'date' })
  myDate: Date;
}
TypeScript

在上面的代码中,我们在@Column装饰器中传入了{ type: 'date' }参数,告诉TypeORM这是一个Date类型的列。

创建DateTime类型列

对于DateTime类型,我们使用TypeORM中的Timestamp类型。在实体中使用以下代码:

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class MyEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ type: 'timestamp' })
  myDateTime: Date;
}
TypeScript

在上面的代码中,我们在@Column装饰器中传入了{ type: 'timestamp' }参数,告诉TypeORM这是一个DateTime类型的列。

格式化

TypeORM中支持使用@Column装饰器的transformer属性来自定义转换器,以便将JavaScript类型转换为数据库中的格式。例如,这里将Date类型列格式化为YYYY-MM-DD:

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class MyEntity {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({
    type: 'date',
    transformer: {
      from: value => {
        return value.toISOString().substr(0, 10);
      },
      to: value => {
        return value;
      }
    }
  })
  myDate: Date;
}
TypeScript

上述代码中,我们传入了一个转换器对象,这个对象包含了一个名为from的函数和一个名为to的函数。from函数用于将值转换为JavaScript类型,to函数用于将值转换为数据库中的格式。在上述代码中,我们将Date类型值转换为YYYY-MM-DD格式。

总结

在TypeORM和NestJS中,我们可以使用@Column装饰器创建Date和DateTime类型的列,并通过传入type参数来指定是哪种类型。我们还可以通过使用transformer属性来格式化这些列的值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册