2014-04-05 150 views
0

我得到一個問題, 我試圖獲取其日期小於當前日期的所有記錄, 但問題是存儲在15-Nov-13甲日期(VARCHAR(20))比較日期VARCHAR在MySQL

現在該如何比較呢?

我試圖

SELECT date_format(str_to_date(`ENDdatetime` , '%d/%M/%y') , '%Y%m') , `CLIENT_PROMO_ID` 
FROM `tb_um_promo_schedule` 
ORDER BY `CLIENT_PROMO_ID` DESC 
LIMIT 0 , 30 

但它返回NULL,

所以在這裏做什麼?

回答

2

你在你的問題(15-Nov-13)不匹配你想在這個轉換格式給的格式:

'%d/%M/%y' 

豈不是

'%d-%M-%y' 

呢?

SELECT date_format(str_to_date(`ENDdatetime` , '%d-%M-%y') , '%Y%m') , `CLIENT_PROMO_ID` 
FROM `tb_um_promo_schedule` 
ORDER BY `CLIENT_PROMO_ID` DESC 
LIMIT 0 , 30 
+0

哦~~神,是其現在的工作,感謝 –

+0

@ Er.KT沒有問題,有時第二組的眼睛挑選東西好和快。作爲旁註的 – Fluffeh

+0

不以varchar格式存儲日期。使用日期時間,否則查詢操作變得非常困難,您需要許多轉換功能。 –