【发布时间】:2019-07-11 06:48:01
【问题描述】:
我正在尝试使用 Sequelize 查询数据库以获取在特定日期范围内创建的项目。我使用了$between 运算符,但似乎什么也没得到。
{ where: {"createdAt":{"$between":["2018-03-31T21:00:00.000Z","2018-05-30T05:23:59.007Z"]}} }
谁能帮助我如何实现这一目标?
【问题讨论】:
标签: node.js sequelize.js
我正在尝试使用 Sequelize 查询数据库以获取在特定日期范围内创建的项目。我使用了$between 运算符,但似乎什么也没得到。
{ where: {"createdAt":{"$between":["2018-03-31T21:00:00.000Z","2018-05-30T05:23:59.007Z"]}} }
谁能帮助我如何实现这一目标?
【问题讨论】:
标签: node.js sequelize.js
我也遇到了同样的问题,我得到了空数组作为响应。使用以下方法解决了问题:
const Op = Sequelize.Op;
然后使用[Op.between]如下图:
where: {
createdAt: {
[Op.between]: ["2018-07-08T14:06:48.000Z", "2019-10-08T22:33:54.000Z"]
}
}
希望对你有帮助:)
【讨论】:
$between 语法似乎是正确的。您使用的方式没有问题。我尝试使用以下查询进行复制
model.findAll({
where: {
created_at: {
"$between": ["2018-03-31T21:00:00.000Z","2018-05-30T05:23:59.007Z"]
}
}
})
唯一的变化是,我使用created_at 而不是createdAt。确保您的列名是正确的。如果不是,它应该抛出SequelizeDatabaseError。寻找它。
如果其他一切都正确,那么您可能没有该日期范围内的数据:)
【讨论】: