📜  sequelize 在两列中比较日期 (1)

📅  最后修改于: 2023-12-03 15:34:56.543000             🧑  作者: Mango

使用 Sequelize 在两列中比较日期

在 Sequelize 中,我们可以使用各种操作符来比较不同的列的值。当比较日期时,我们可以使用以下操作符:

  • Op.gt:大于
  • Op.gte:大于等于
  • Op.lt:小于
  • Op.lte:小于等于
  • Op.between:在两个值之间
  • Op.notBetween:在两个值之外

我们需要使用这些操作符之一来比较日期。下面是一个示例,我们将使用 Op.between 操作符来找到在 startDateendDate 之间的所有记录:

const { Op } = require('sequelize');
const { YourModel } = require('../models'); // 导入你的 Sequelize 模型

const startDate = new Date('2021-01-01');
const endDate = new Date('2021-12-31');

const records = await YourModel.findAll({
  where: {
    dateField: {
      [Op.between]: [startDate, endDate],
    }
  },
});

在上面的代码中,我们首先导入了 Sequelize 的 Op 对象和你的模型。然后,我们定义了要比较的两个日期,并使用 Op.between 操作符将它们传递给 where 子句。最后,我们调用 findAll 方法来获取所有符合条件的记录。

需要注意的是,dateField 是你模型中用来存储日期的字段名。你需要将其替换为你自己的字段名。

还有其他可以用于比较日期的操作符,可以根据具体需要进行使用。上面的示例仅是其中一种用法。

总之,使用 Sequelize 在两列中比较日期非常简单。只需选择一个适当的操作符,将要比较的日期传递给 where 子句,然后调用 findAll 或其他适当的方法即可。