2016-04-08 2 views
1

Я пытаюсь сортировать дату заказа в порядке убывания, но здесь дата отправляется в порядке убывания, но время не отправляется в указанном порядке.Запрос, чтобы отсортировать время с датой по убыванию в postgres

Мой запрос:

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

Использовать 'ASC' вместо' DESC'? – assylias

+0

ASC будет упорядочивать его в порядке возрастания. – user2853879

+0

Вы пытались заменить 'ORDER BY m.requi_date :: date DESC, orderdate DESC' с просто' ORDER BY m.requi_date DESC'? – assylias

ответ

0

Вы выбираете orderdate как полукокс, так что заказываются лексический, где 6 1>6 0../2016 08:52.. и ../2016 10:45..).

Я не знаю тип m.requi_date, но я подозреваю, что это тип даты. Таким образом, вы должны получить результат, который вам нужен, просто заказывая m.requi_date DESC вместо m.requi_date DESC,orderdate DESC.

Смежные вопросы