MySQL,在格式DD-MMM-YYYY时比较日期少于另一个

时间:2011-11-27 20:45:48

标签: mysql sql

所以我有任务的截止日期,以'10 -nov-2011'的形式存储在数据库中。

是否有人可以进行查询以选择截止日期少于现在的所有任务?

直接到期<今天不行。

2 个答案:

答案 0 :(得分:4)

将列更改为date类型。然后你的查询就可以了。

如果您无法更改列类型,请使用STR_TO_DATE将字符串解析为日期。

WHERE STR_TO_DATE(due, '%d-%b-%Y') < NOW()

答案 1 :(得分:1)

如果您的所有日期都采用上述格式,那么您可以将字符转换为日期,只需使用小于或大于比较的比较即可进行比较。

要将字符串转换为日期,请尝试此操作

select str_to_date('10-nov-2011','%d-%b-%Y');

根据您的示例并假设您的列名为due_date且您的表名为tasks,您的查询将类似于

select * 
from tasks 
where str_to_date(due_date,'%d-%b-%Y') < CURDATE();