Oracle-11g
To_Char 顯示日期不是升序
我能知道為什麼以及如何解決這個問題,如果我使用 To_Char 它不會按升序對日期進行排序。下面是我的程式碼
select distinct To_Char (attendance_Date, 'dd/mm/yyyy') from DIT_2010MAR_CIT4114A_FYP1_NO order by 1 asc
得到的結果是
日期 ---------- 01/05/2016 02/05/2016 03/04/2016 04/04/2016 05/04/2016 06/04/2016
如果您按 DD/MM/YYYY 格式的日期排序,那麼排序會將所有月份的第一天(每個月)放在首位,然後是月份的秒數,等等。
但是,您不能按未包含在 select distinct 中的列進行排序。要按日期升序排序,請分組並使用實際日期列而不是通過 to_char 格式化的日期:
select To_Char (attendance_Date, 'dd/mm/yyyy') from DIT_2010MAR_CIT4114A_FYP1_NO group by attendance_Date order by attendance_Date asc
如果
attendance_Date
是時間戳,則首先將其轉換為日期(查詢中的任何位置)。