javascript - 如何在 postgres 中按自定义日期格式的顺序查询?
问题描述
我有一个带有“日期”列的 postgres 表,它是一个具有基本 javascript 日期格式的字符串:
"Tue Dec 29 2020 23:16:54 GMT-0800 (Pacific Standard Time)"
我想知道是否有一种按日期查询的方法,即使它是这样的字符串格式。在我的节点后端,我目前正在这样做:
pool.query("SELECT * FROM table WHERE field1 = $1 ORDER BY date DESC LIMIT 10", [val1], (err, table) => {
if(err) {
return res.status(400)
done()
} else {
res.json(table.rows)
}
})
起初这似乎有效,但由于添加了更多记录,它并没有真正正常工作。如果有一个不涉及重做日期列的修复程序,我将非常感激,因为我已经围绕该日期字符串格式构建了很多代码。先感谢您。
解决方案
正如评论者所指出的,时间戳列比字符串列更好地为您服务。但是,如果您无法更改架构,则可以在按其排序之前将时间戳字符串转换为实际时间戳,如下所示 -
SELECT * FROM table
WHERE field1 = $1
ORDER BY to_timestamp(date, 'Dy Mon DD YYYY HH24:MI:SS') DESC
LIMIT 10
推荐阅读
- c# - 是否可以从域外访问 Windows 用户名?
- angular - *ngFor 在从 API 获取数据时显示空列表
- mysql - Joomla 3.8 与 MYSQL 5.6、5.7 和 8 的兼容性
- java - 如何通过传递该项目的路径来计算java项目中的类和方法的数量?
- java - 使用 Input Stream 和 Argox 在 Java 中打印重音时出现问题
- java - 使对象的所有字段无效的高效方法
- vue.js - 使用 Vue 或任何其他前端与 Asp Net Core
- python-3.x - 'int' 对象不可调用 如何解决此错误?
- python - 修复错误
' 需要字符串作为左操作数,而不是元组 - java - 在无需访问源代码的情况下模拟 Swing 应用程序中的用户操作(例如:鼠标单击)