所以我有任务的截止日期,以'10 -nov-2011'的形式存储在数据库中。
是否有人可以进行查询以选择截止日期少于现在的所有任务?
直接到期<今天不行。
答案 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();