2012-10-18 63 views
0

如何做到這一點的權利活動日期升序不正確

Select DATE_FORMAT(EventDate, '%b %d, %Y') 
from details 
Order by STR_TO_DATE(EventDate, '%d-%m-%y') 

樣本記錄,

Oct 24, 2012 
Oct 27, 2012 
Oct 28, 2012 
Oct 20, 2012 
Dec 22, 2012 
Jan 11, 2013 
Jan 19, 2013 
Nov 24, 2012 
Dec 29, 2012 
+1

您將'EventDate'視爲'VARCHAR'和'DATE'。它是什麼數據類型? –

回答

1

這個怎麼樣:

Select DATE_FORMAT(EventDate, '%b %d, %Y') from details Order by EventDate 
+0

這是我的查詢命令的日期,但日期是不正確的,因爲你可以看到 – Margz

+0

@ MargzJacela湯姆是正確的,你是什麼意思不正確的順序?你的列'EventDate'的數據類型是什麼? –

+0

什麼數據類型是EventDate字段?如果這是一個日期這個查詢將正確排序。 – Tom

0
Order by STR_TO_DATE(EventDate, '%d-%m-%y') 

所以我們開始EventDate這你說的是DATE,我們將它作爲第一個參數提供給STR_TO_DATE()。這樣的函數需要一個字符串,所以MySQL可能使用默認格式(YYYY-MM-DD)將字符串轉換爲字符串。然後它嘗試使用DD-MM-YYYY格式將字符串轉換爲日期,但字符串不是該格式。你明白我想去的地方嗎?

綜上所述:您不需要投射約會日期 - 這已經是約會了!

Order by EventDate