【发布时间】:2017-05-26 03:06:01
【问题描述】:
谁能帮我按预期排序记录(Postgres 数据库)?
以下是对我的一张表的查询结果,我已按整个日期的日期部分排序 (ORDER BY extract(DAY from cast(date as DATE)))
注意:: 所有日期均采用 YYYY-MM-DD 格式
2016-03-01
2016-09-01
2016-08-01
2016-12-01
2016-01-01
2016-07-01
2016-11-01
2016-02-01
2016-06-01
2016-10-01
2016-04-01
2016-05-01
2016-07-22
2016-08-22
2016-10-22
2016-09-22
2016-11-22
2016-12-22
这很好,因为它根据日期部分对记录进行排序。但是,我想要的是,结果应该是所有记录都应该根据日期部分排序,所以日期 1 的所有记录都在日期 22 的所有记录之前,而且它应该对这两个部分进行排序,即日期 1 和日期 22 也按月份部分(如果查看上面的结果集,您会注意到它是按日期部分排序的,而不是按月份部分排序的)。所以基本上我想要的结果应该如下所示
2016-01-01
2016-02-01
2016-03-01
2016-04-01
2016-05-01
2016-06-01
2016-07-01
2016-08-01
2016-09-01
2016-10-01
2016-11-01
2016-12-01
2016-07-22
2016-08-22
2016-09-22
2016-10-22
2016-11-22
2016-12-22
【问题讨论】:
-
除了 1 号和 22 号之外,你还有其他日子吗?
-
是的,我会的。但是您遵循的解决方案似乎有效
ORDER BY extract(DAY from cast(date as DATE)), date
标签: sql postgresql sorting datetime