我想通过createdAt
列在数据库中找到一些条目,但仅使用日期即可。我正在使用postgres,而createdAt
是timestamptz
。这是其中的条目看起来像的示例:2019-02-27 20:17:07.05+00
这是我的查询设置:
const dateString = momentDate.format('YYYY-MM-DD')
query.createdAt = { $iLike: `%${dateString}` }
不幸的是,这不起作用,并且出现以下错误:
承诺重试:错误SequelizeDatabaseError:运算符不存在:带有时区~~ *的时间戳未知
问题可能是因为我正在使用字符串吗?按日期查询的正确方法是什么?
答案 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 => {
});