найти записи, у которых есть даты, которые выпадают до даты 7 дней с этого момента.используя формат даты и времени - PullRequest
0 голосов
/ 07 января 2012

Я пытаюсь найти записи на основе текущей даты. Один из запросов, который я пытаюсь сделать, - это найти любую запись, которая находится в пределах 7 дней с текущей даты. это то, что у меня есть

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

Это не работает, конечно. что именно я делаю не так. delivery_deadline - формат даты и времени, а не формат даты

Ответы [ 3 ]

4 голосов
/ 07 января 2012
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 голос
/ 07 января 2012

Вы можете отредактировать ваш запрос, чтобы он выглядел следующим образом.Это даст вам желаемый результат:

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

Проект, который заканчивается не раньше, чем сегодня или не позднее, чем через 7 дней с сегодняшнего дня.

1 голос
/ 07 января 2012

Не должны ли вы написать:

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

редактировать

Правильное решение:

WHERE Project.delivery_deadline between now() and date_add(now() ,interval 7 day)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...