javascript - 使用 Sequelize 按日期查询时间戳
问题描述
我想通过createdAt
列在我的数据库中找到一些条目,但只使用日期。我正在使用 postgres,它createdAt
是一个timestamptz
. 以下是其中条目的示例:2019-02-27 20:17:07.05+00
这就是我的查询设置的样子:
const dateString = momentDate.format('YYYY-MM-DD')
query.createdAt = { $iLike: `%${dateString}` }
不幸的是,这不起作用,我收到以下错误:
retry-as-promised:error SequelizeDatabaseError: operator does not exist: timestamp with time zone ~~* unknown
问题可能是因为我使用的是字符串吗?按日期查询的正确方法是什么?
解决方案
使用函数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 => {
});
推荐阅读
- javascript - 我的图表数据有 2 个条件(没有日期输入和日期输入)没有显示任何结果
- neo4j - 在 Neo4j 浏览器中键入时,如何在 Cypher Query 的新行上开始一个新子句,当前“Enter”或“Return”键执行查询
- jquery - 进度条完成后如何显示内容?
- php - 无法使用 Coinbase PHP API 购买 ETH 或其他硬币
- python - 'r = yield n' 和 'r = (yield n)' 有什么区别?
- sql - 查找未重新订阅的用户
- azure-ad-b2c - Azure AD B2C - 使用比较在 AAD-UserReadUsingEmailAddress 上引发错误
- node.js - Node.js“请求”库是否支持异步可迭代响应流?
- python - 我想从我的 csv 编写器(输出文件)中删除标题
- java - 元素不可见异常?在动态自动提示下拉菜单中 - Selenium - Java