2014-04-05 195 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格式存储日期。使用日期时间,否则查询操作变得非常困难,您需要许多转换功能。 –