¿Cuál es la mejor manera de tener un campo para una fecha en PostgreSQL y TypeORM?
Soy relativamente nuevo en PostgreSQL (en la base de datos SQL general), pero en MongoDB (con Mongoose) generalmente tengo un campo como este:
export class User { @Prop({ default: Date.now() }) createdAt: Date; }¿Cuál sería el equivalente a esto en TypeORM y PostgreSQL? Porque, si uso este enfoque, PostgreSQL me arroja un error.
QueryFailedError: valor de campo de fecha/hora fuera de rango: "1634416004545"
Puede usar el decorador @CreateDateColumn para archivar lo que desea:
export class User { @CreateDateColumn() createdAt: Date; }Sé que es antiguo, pero me topé con uno hoy y sin una respuesta aprobada, así que pensé que podría ser de ayuda para alguien como yo en el futuro.
Básicamente, el problema proviene del uso de Date.now() en lugar de new Date() . Mi ejemplo de trabajo se ve así
@Column({ type: "timestamptz", default: () => "CURRENT_TIMESTAMP" }) createdDate: Date; Si no se proporciona el valor, asignará el valor actual. Tenga en cuenta aquí que si actualiza una fila y el nuevo valor pierde el campo createdDate , el antiguo se sobrescribirá.
Luego, si desea configurarlo manualmente, simplemente use una new Date() como esta
const created = { ..., createdDate: new Date(), ...}