我正在尝试根据当前日期查找记录。我想要做的一个查询是找到任何落在当前日期7天内的记录。这就是我所拥有的
WHERE `Project`.`delivery_deadline` <= 'DATE_SUB(CURDATE(),INTERVAL 7 DAY)'
GROUP BY `Project`.`id`
LIMIT 20
当然这不起作用。究竟我做错了什么。 delivery_deadline是日期时间格式而不是日期格式
答案 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天结束的项目。