我需要从数据库中获取事件日期为今天后3天的记录。日期格式为2019-07-06 12:00:00
,例如,如果今天是7月4日-Sequalize应该返回字段event
等于7月7日任何时间的所有记录。
我假设使用Sequalize运算符。 Moment lib在范围内可用,因此可能会有所帮助。
const records = await this.bookingService.findAll({
where: {
event: { [this.sequelize.Op.eq]: moment().add(3, 'days').toDate() }
}
});
总的来说,我喜欢这个主意,但是由于它们的时间不同,所以没有显示任何记录。也许我需要格式化数据库中的事件字段,但不知道如何在此行event
event: { [this.sequelize.Op.eq]: moment().add(3, 'days').toDate() }
字段
答案 0 :(得分:0)
好吧,我找到了解决方案。实际上,我不需要格式化事件日期,而是需要在3天的开始和结束时间创建两个时间戳。像这样:
const startDate = moment().add(3, 'days').startOf('day').format()
const endDate = moment().add(3, 'days').endOf('day').format()
仅检查记录事件字段是否在以下日期范围内:
const records = await this.bookingService.findAll({
where: {
event: { [this.sequelize.Op.between]: [startDate, endDate]}
}
});