Нужно выбрать записи date которых меньше текущей даты на 7 дней и не более чем 30 дней.
Пример: (Представим что сегодня 2018-11-28)
id | Дата
1 | 2018-12-28
2 | 2018-12-22
3 | 2018-10-27
Должно отобразить только вторую запись. (2018-12-21) т.к. она попадает в этот промежуток Моя неудачная попытка:
SELECT `user_id`
FROM users
WHERE user_last_activity <= CURDATE()-6
AND user_last_activity > CURDATE()-30
Численное значение YYYYMMDD, возвращаемое функцией CURDATE, не будет давать верный результат при арифметических действиях, пересекающих границы месяца.
SELECT `user_id` FROM users WHERE
user_last_activity <= DATE_ADD(CURDATE(), INTERVAL -6 DAY) AND
user_last_activity > DATE_ADD(CURDATE(), INTERVAL -30 DAY)
SELECT `user_id`
FROM users
WHERE user_last_activity <= CURRENT_DATE - INTERVAL 6 DAY
AND user_last_activity >= CURRENT_DATE - INTERVAL 30 DAY
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости