2015-09-02 51 views
0

變換日期格式在MySQL表和排序結果我有不一致的日期格式的表格。例如:按日期

ID date  name 
1 01.02.2015 exampleA 
2 12.13.2015 exampleB 
3 1.11.2015 exampleC 

有時日期格式爲d.m.Y,有時格式爲m.d.Y.我創造了這個SQL語句,該語句轉換結果的日期欄的一個統一的格式:

SELECT IFNULL(DATE_FORMAT(STR_TO_DATE(date, '%d.%m.%Y'), '%d.%m.%Y'), 
     DATE_FORMAT(STR_TO_DATE(date, '%m.%e.%Y'), '%e.%m.%Y')) AS date, 
     Name, 
     ID 
FROM `exampleTable` 
ORDER BY `date` DESC 

但結果是不是真的按日期排序,因爲此列像數或別的東西處理,所以該命令沒有意義。

  • 我該怎麼做才能獲得所需的結果?
  • 有沒有辦法創建一個新的列,並在我的表格中以 統一格式寫入日期,以便我可以刪除其他日期 列?
+0

這是列的數據類型? – jarlh

+0

Varchar(10).... – team17

+0

創建一個sqlfiddle或共享示例數據。 –

回答

1

這似乎是不可能的programmaticaly區分格式像2015年2月3日的日期也可以是既%d.%m.%Y%m.%e.%Y它會給在這兩種情況下的結果,雖然結果會有所不同。對於喜愛varcahar輸入的信息已經丟失