` export抽象类GeneralEntity extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@CreateDateColumn({ name: 'createdAt' })
createdAt: Date;
@UpdateDateColumn({ name: 'updatedAt' })
updatedAt: Date;
@DeleteDateColumn({ name: 'deletedAt' })
deletedAt: Date;
}`
这是我正在使用的一个实体。当我试图从这个实体中检索数据与特定的创建日期,日期我给不匹配,即使它是相同的。
const bookedRoomEntities = await this.createQueryBuilder('booking')
.where(`booking.roomId = :roomId`, { roomId })
.andWhere(`booking.createdAt = :date`, { date: format(date, 'yyyy-MM-dd HH:mm:ss') })
.orderBy('booking.start')
.getMany();
bookedRoomEntities
这始终是一个空数组。
const bookedRoomEntities = await this.createQueryBuilder('booking')
.where(`booking.roomId = :roomId`, { roomId })
.andWhere(`booking.createdAt = :date`, { date: format(date, 'yyyy-MM-dd HH:mm:ss') })
.orderBy('booking.start')
.getMany();
它不应该是一个空数组。
任何帮助是赞赏!
1条答案
按热度按时间vfwfrxfs1#
在查询中,您将booking.createdAt与格式化的日期字符串进行比较。这可能会返回不正确的值,因为它可能会比较两个日期字符串,如下所示:
下面是一个可能的解决方案,如果你想比较到秒(忽略毫秒),那么就使用DATE(booking.createdAt):
仅比较日期部分(将时间戳转换为日期):