2014-11-21 173 views
0

我有數據庫中的日期字段,但不幸的是日期字段類型是varchar。日期插入像08-07-2010(dd-mm-yy)。我想按日期順序(年份)按照08-07-2009,07-07-2010縮短數據。當我使用「按日期排序asc」是一年中的短數據時,比如07-07-2010,08-07-2009。請給我任何建議,如果你有我的查詢是當字段類型是varchar的短日期麻煩

select * from tbl_name order by date asc 

回答

2

那在VARCHAR問題,nerver存儲日期,你應該存儲在MySQL原生日期等數據類型的日期。 不過你的情況,你需要的VARCHAR日期轉換爲真正的約會使用功能 str_to_date

mysql> select str_to_date('08-07-2010','%d-%m-%Y'); 
+--------------------------------------+ 
| str_to_date('08-07-2010','%d-%m-%Y') | 
+--------------------------------------+ 
| 2010-07-08       | 
+--------------------------------------+ 

所以查詢應該是

select * from tbl_name order by str_to_date(date,'%d-%m-%Y') asc 
+0

感謝您幫助其作品.. – user2897328 2014-11-21 08:05:32