Я запускаю запрос, чтобы получить строки, которые попадают между определенными датами (текущая дата и 7 дней назад для этого примера).
Я пробовал писать так:
SELECT *
FROM faulttracker.ft_v_cases
WHERE DATE(cs_created) BETWEEN DATE(NOW()) AND DATE(NOW()-INTERVAL 7 DAY)
ORDER BY cs_created DESC;
но он вернул 0 строк. Я не мог понять, почему это не сработало, и попытался переписать это так:
SELECT *
FROM faulttracker.ft_v_cases
WHERE DATE(cs_created) <= DATE(NOW())
AND DATE(cs_created) >= DATE(NOW()-INTERVAL 7 DAY)
ORDER BY cs_created DESC;
который ДЕЙСТВИТЕЛЬНО работал.
Почему первый вернул 0 строк, а второй работал как положено? Насколько я понимаю, они должны быть функционально эквивалентны.
cs_created — это дата и время.