查找日期早于7天之后的日期的记录。使用日期时间格式

时间:2012-01-06 20:25:16

标签: mysql sql

我正在尝试根据当前日期查找记录。我想要做的一个查询是找到任何落在当前日期7天内的记录。这就是我所拥有的

WHERE `Project`.`delivery_deadline` <= 'DATE_SUB(CURDATE(),INTERVAL 7 DAY)' 
GROUP BY `Project`.`id` 
LIMIT 20

当然这不起作用。究竟我做错了什么。 delivery_deadline是日期时间格式而不是日期格式

3 个答案:

答案 0 :(得分:4)

WHERE `Project`.`delivery_deadline` <= 'DATE_SUB(CURDATE(),INTERVAL 7 DAY)' 
GROUP BY `Project`.`id` 
LIMIT 20

将截止日期与字符串'DATE_SUB(CURDATE(),INTERVAL 7 DAY)'进行比较,而

WHERE `Project`.`delivery_deadline` <= DATE_SUB(CURDATE(),INTERVAL 7 DAY) 
GROUP BY `Project`.`id` 
LIMIT 20

将其与DATE_SUB()的结果进行比较,这可能是您想要的结果。

答案 1 :(得分:1)

你不应该写:

WHERE `Project`.`delivery_deadline` >= 'DATE_SUB(CURDATE(),INTERVAL 7 DAY)' 

修改

正确的解决方案是:

WHERE Project.delivery_deadline between now() and date_add(now() ,interval 7 day)

答案 2 :(得分:1)

您可以将查询编辑为如下所示。那会给你你想要的结果:

WHERE `Project`.`delivery_deadline` >= CURDATE() 
AND `Project`.`delivery_deadline` <= (CURDATE() + 7)
GROUP BY `Project`.`id` 
LIMIT 20

今天最早或不迟于7天结束的项目。