使用Sequelize按日期查询时间戳

时间:2019-02-28 15:48:53

标签: javascript postgresql sequelize.js feathers-sequelize

我想通过createdAt列在数据库中找到一些条目,但仅使用日期即可。我正在使用postgres,而createdAttimestamptz。这是其中的条目看起来像的示例:2019-02-27 20:17:07.05+00

这是我的查询设置:

const dateString = momentDate.format('YYYY-MM-DD')
query.createdAt = { $iLike: `%${dateString}` }

不幸的是,这不起作用,并且出现以下错误:

  

承诺重试:错误SequelizeDatabaseError:运算符不存在:带有时区~~ *的时间戳未知

问题可能是因为我正在使用字符串吗?按日期查询的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

使用功能 DateDiff 获取介于 createdAt dateString 之间的日期。需要将dateString转换为datetime

var sequelize = require('sequelize');

var dateString = '01/03/2019';
yourModel.findAll({
    where: sequelize.literal(`DATEDIFF(day,Cast(${dateString} as datetime), createdAt) = 0`)
})
.then(results => {

})
.catch(err => {

});