为了让TypeORM在UTC中保存CreateDateColumn和UpdateDateColumn的值,您可以按照以下步骤进行设置:
ormconfig.json
或typeorm.config.js
文件中进行设置。例如:{
"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"
]
}
@CreateDateColumn
和@UpdateDateColumn
装饰器来标记创建日期和更新日期字段。确保这些字段的类型为Date
。例如: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
装饰器分别用于标记createdAt
和updatedAt
字段,并使用type
参数指定字段类型为timestamp
。default
参数用于设置默认值,onUpdate
参数用于在更新实体时更新字段值。
Date
对象转换为UTC时间。可以使用new Date(Date.UTC(year, month, day, hour, minute, second))
来创建UTC时间。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的值。这样可以确保时间的一致性和正确性,并适应不同时区的需求。
请注意,本回答中未提及腾讯云的相关产品和产品介绍链接地址,因为根据要求,不能提及具体品牌商。如需了解相关产品信息,请您自行查阅腾讯云官方文档或咨询腾讯云官方支持。
小程序·云开发官方直播课(数据库方向)
企业创新在线学堂
云+社区开发者大会 长沙站
云+社区技术沙龙 [第31期]
云+社区沙龙online第5期[架构演进]
云+未来峰会
腾讯技术创作特训营第二季第2期
腾讯技术创作特训营第二季
领取专属 10元无门槛券
手把手带您无忧上云