首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让TypeORM在UTC中保存CreateDateColumn,UpdateDateColumn的值?

为了让TypeORM在UTC中保存CreateDateColumn和UpdateDateColumn的值,您可以按照以下步骤进行设置:

  1. 在TypeORM的配置文件中,确保数据库连接的时区设置为UTC。可以在ormconfig.jsontypeorm.config.js文件中进行设置。例如:
代码语言:txt
复制
{
  "type": "mysql",
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "password",
  "database": "mydatabase",
  "timezone": "UTC", // 设置为UTC时区
  "synchronize": true,
  "logging": true,
  "entities": [
    "src/entities/**/*.ts"
  ],
  "migrations": [
    "src/migrations/**/*.ts"
  ],
  "subscribers": [
    "src/subscribers/**/*.ts"
  ]
}
  1. 在您的实体类中,使用@CreateDateColumn@UpdateDateColumn装饰器来标记创建日期和更新日期字段。确保这些字段的类型为Date。例如:
代码语言:txt
复制
import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn } from 'typeorm';

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

  @Column()
  name: string;

  @CreateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
  createdAt: Date;

  @UpdateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP' })
  updatedAt: Date;
}

在上述示例中,@CreateDateColumn@UpdateDateColumn装饰器分别用于标记createdAtupdatedAt字段,并使用type参数指定字段类型为timestampdefault参数用于设置默认值,onUpdate参数用于在更新实体时更新字段值。

  1. 确保您在保存或更新实体之前,将JavaScript的Date对象转换为UTC时间。可以使用new Date(Date.UTC(year, month, day, hour, minute, second))来创建UTC时间。
代码语言:txt
复制
import { getRepository } from 'typeorm';
import { User } from '../entities/User';

const userRepository = getRepository(User);

const user = new User();
user.name = 'John Doe';
user.createdAt = new Date(Date.UTC(2022, 0, 1, 10, 30, 0)); // 设置为UTC时间

await userRepository.save(user);

通过以上设置和操作,您可以让TypeORM在UTC中保存CreateDateColumn和UpdateDateColumn的值。这样可以确保时间的一致性和正确性,并适应不同时区的需求。

请注意,本回答中未提及腾讯云的相关产品和产品介绍链接地址,因为根据要求,不能提及具体品牌商。如需了解相关产品信息,请您自行查阅腾讯云官方文档或咨询腾讯云官方支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券