我有一个postgres表,其中的列“ date”是具有基本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)
}
})
乍一看似乎可行,但是由于添加了更多记录,因此它实际上并没有正常工作。如果有不涉及重做日期列的修复程序,我将不胜感激,因为我已经围绕该日期字符串格式构建了很多代码。先感谢您。
正如评论者所指出的,使用timestamp列比使用string列会更好。但是,如果您无法更改架构,则可以在进行排序之前将时间戳字符串转换为实际时间戳,如下所示-
SELECT * FROM table
WHERE field1 = $1
ORDER BY to_timestamp(date, 'Dy Mon DD YYYY HH24:MI:SS') DESC
LIMIT 10
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句