按日期范围查询Sequelize中的列字段

pro*_*ton 2 node.js sequelize.js

我正在尝试使用Sequelize查询数据库,以获取在特定日期范围之间创建的项目。我使用了$between运算符,但似乎什么也没得到。

{ where: {"createdAt":{"$between":["2018-03-31T21:00:00.000Z","2018-05-30T05:23:59.007Z"]}} }

谁能帮助我实现这一目标?

Bin*_*Mee 5

$between语法似乎是正确的。您使用的方式没有问题。我尝试使用以下查询进行复制

  model.findAll({
    where: {
      created_at: { 
        "$between": ["2018-03-31T21:00:00.000Z","2018-05-30T05:23:59.007Z"]
      }
    }
  })
Run Code Online (Sandbox Code Playgroud)

唯一的变化是,我使用created_at代替createdAt. 确保您的列名称正确。如果不是,它应该抛出SequelizeDatabaseError. 寻找它。

如果其他一切都正确,那么您可能没有该日期范围内的数据:)


Moh*_*hit 5

我也有同样的问题,我得到了空数组作为响应。该问题已使用解决:

const Op = Sequelize.Op;
Run Code Online (Sandbox Code Playgroud)

然后使用[Op.between]如下所示:

where: {
  createdAt: {
    [Op.between]: ["2018-07-08T14:06:48.000Z", "2019-10-08T22:33:54.000Z"]
  }
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 :)