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

时间:2018-05-30 05:46:16

标签: node.js sequelize.js

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

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

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

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

const Op = Sequelize.Op;

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

where: {
  createdAt: {
    [Op.between]: ["2018-07-08T14:06:48.000Z", "2019-10-08T22:33:54.000Z"]
  }
}

希望它会有所帮助:)