我想显示一个表中的数据,这些表按照' Jan',' 2月'中的月份排序。格式。如果我使用to_char函数,则排序不正确。如何才能做到这一点?我正在尝试的示例数据和查询。
SELECT * FROM tb;
dt
------------
2014-12-12
2014-01-01
SELECT to_char(dt,'Mon') FROM tb ORDER BY to_char(dt,'Mon');
to_char
---------
Dec
Jan
答案 0 :(得分:2)
您需要按日期订购并按日期显示月份。尝试类似:
SELECT TO_CHAR(dt,'Mon')
FROM tb
ORDER BY dt
答案 1 :(得分:0)
我遇到了同样的问题,由于出现错误,我无法通过dt订购
ORDER BY表达式必须出现在选择列表中。
我做了以下事情:
SELECT mon
FROM (SELECT DISTINCT DATE_PART('MONTH', dt) AS m, TO_CHAR(dt,'Mon') AS mon FROM tb) AS mname
ORDER BY m;
我使用DISTINCT来避免重复几个月。