2012-06-19 104 views
0

我嘗試按格式爲yyyy/mm/dd的日期排序查詢的結果,並且我正在使用此查詢無濟於事。MySQL排序查詢varchar保存日期

SELECT * FROM table ORDER BY STR_TO_DATE(date, '%y/%m/%d') 

我不能改變存儲日期的字段的類型,所以我希望我可以訂購日期後數據輸入。

任何幫助和建議表示讚賞。

回答

3

如果日期是這種格式,你不需要將它轉換爲日期,當然?該格式將字母順序排序,假設它爲0填充...(即七月是2012 2012/07/03 7月3日...)

所以,你可以去:

select * from table order by date 

什麼類型字段是你的date字段:你確定它是一個varchar

假設它是一個varchar,你可以工作,什麼是會走錯了:

select str_to_date(date, '%y/%m/%d') from table 

你(應該)獲得所有空的,因爲%y是錯誤的。嘗試:

select str_to_date(date, '%Y/%m/%d') from table 

它應該工作。但如前所述,您不必轉換爲排序。

+1

1,因爲此日期格式的選擇通常是專門做,因爲它是自然排序(這並不意味着它是在一個DB其提供的日期格式正確的選擇) 。 –

0

嘗試用資本Y:

SELECT * FROM table ORDER BY STR_TO_DATE(date, '%Y/%m/%d')

小寫Y是爲YY,大寫字母YYYY。

-1

SELECT * FROM表ORDER BY日期