PostgreSQL以正确的顺序显示月份

时间:2015-02-26 17:06:12

标签: sql postgresql

我想显示一个表中的数据,这些表按照' 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

2 个答案:

答案 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来避免重复几个月。