查询在postgres中按日期降序排序时间

时间:2016-04-08 11:55:15

标签: sql postgresql sorting date time

我正在尝试按降序对订单日期进行排序,但是这里的日期按降序排列,但时间没有按照上述顺序进行。

我的查询:

SELECT get_sub_test_name(test_id, sub_test_id) as testname,
       quantity, status, receipt_no, cash_book,            
       to_char(m.requi_date,'dd/mm/yyyy hh:MIAM') AS orderdate,  
       r.service_type, r.volume, r.requi_id, r.requi_year
FROM recommended_test as r , requisition_main as m 
WHERE r.requi_id=m.requi_id AND
      m.reg_no='1401490' AND
      m.hospital_id=17004 
ORDER BY m.requi_date::date DESC,orderdate DESC,m.requi_id DESC LIMIT 1000;

orderdate以这种方式排序:

15/01/2016 10:45AM    
15/01/2016 10:45AM
15/01/2016 08:52PM
15/01/2016 08:52PM

而我想要它:

                  15/01/2016 08:52PM
                  15/01/2016 08:52PM
                  15/01/2016 10:45AM
                  15/01/2016 10:45AM

请帮帮我。

1 个答案:

答案 0 :(得分:2)

您选择orderdate作为字符,因此正在按词汇顺序排列,其中6 1> 6 0../2016 08:52..../2016 10:45..)。

我不知道m.requi_date的类型,但我怀疑它是日期时间类型。因此,您只需按m.requi_date DESC而不是m.requi_date DESC,orderdate DESC进行排序,即可得到您所获得的结果。