如何在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

最新更新