Sequelize查询 - 比较两列中的日期

时间:2015-05-26 08:09:28

标签: sequelize.js

我在Sequelize中有一个表,有两个日期列 - 即:

var Visit = sequelize.define("Visit", {
  /*...*/
  scheduleEndDate: {
    type: DataTypes.DATE
  }
  actualEndDate: {
    type: DataTypes.DATE
  }
  /*...*/
});

我想在scheduleEndDate之前创建一个返回actualEndDate行的查询 - 并且无法获得正确的格式。我在where查询的findAll部分尝试过的是:

where: { actualEndDate: { lt: Visit.scheduleEndDate } }

- 抛出错误,因为访问未定义(也尝试使用this.scheduleEndDate - 也会抛出错误)

where: { actualEndDate: '< scheduleEndDate' }

- 将actualEndDate与字符串&#39;&lt;字符串进行字符串比较。 scheduleEndDate&#39;

我是否需要定义实例方法来进行日期比较/如何最好地解决?

2 个答案:

答案 0 :(得分:15)

这应该可以用

where: { actualEndDate: { $lt: sequelize.col('scheduleEndDate') } }

答案 1 :(得分:1)

在最新版本(v5)中,您需要使用python setup.py build_ext Docs

Sequelize.Op

所有操作:

const Op = Sequelize.Op;
...
where: {
    actualEndDate: {
        [Op.lt]: sequelize.col('scheduleEndDate')
    }
}