如何在postgresql中使用日期格式?

How to use date format in postgresql?

我正在使用以下查询:

SELECT distinct to_char(order_date, 'Mon') as mon from meta.ship_error order 
by to_char(order_date, 'Mon') asc 

输出为:

 "Apr" 
 "Aug" 
 "Dec" 
 "Feb" 
 "Jan" 
 "Jun" 
 "Mar" 
 "May" 
 "Nov" 
 "Oct" 
 "Sep" 
  ""

但我想要这样的输出:

 jan
 feb
 mar
 apr  ....

我应该在查询中做哪些更改?

您正在按月份的文本表示排序,此处:

order by to_char(order_date, 'Mon') asc 

to_char的结果是字符串,所以按字母顺序排列; Postgres 不再知道这与日期有任何关系,因此没有理由将 "jan" 放在 "apr".

之前

您想按日期本身订购:

order by order_date asc

或者用月份的数字表示,您可以使用 extract():

order by extract(month from order_date) asc

请注意,由于您的 DISTINCT 当前是根据文本表示进行分组,因此您可能无法让 SELECTORDER BY 使用不同的表示。使用显式 GROUP BY 会更容易,它可以列出两种表示形式:

group by extract(month from order_date), to_char(order_date, 'Mon')

因为您可以确定给定的 order_date 不能为这两列生成单独的值,所以这不会更改行数,但允许您这样写:

select to_char(order_date, 'Mon')
from meta.ship_error
group by extract(month from order_date), to_char(order_date, 'Mon')
order by extract(month from order_date);

使用这个查询我得到了我的解决方案

SELECT distinct to_char(order_date, 'Mon') as MON , extract(month from 

order_date) from meta.ship_error order by extract(month from order_date) asc