与Sequalize运算符获取日期

时间:2019-07-04 09:17:18

标签: javascript node.js sequelize.js

我需要从数据库中获取事件日期为今天后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() }字段

1 个答案:

答案 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]}
      }
    });