Я пытаюсь написать запрос, чтобы выбрать все записи из таблицы users, где User_DateCreated (поле datetime) >= 3 месяца с сегодняшнего дня.
Любые идеи?
Ответ 1
SELECT *
FROM users
WHERE user_datecreated >= NOW() - INTERVAL 3 MONTH
Ответ 2
Если вы хотите игнорировать время суток, когда пользователь был создан, вы можете использовать следующее. Таким образом, это покажет кого-то, созданного в 8:00, если вы запустите Quassnoi example query в 2:00 pm.
SELECT *
FROM users
WHERE DATE(user_datecreated) >= DATE(NOW() - INTERVAL 3 MONTH)
Ответ 3
Использование DATE (user_datecreated) не позволяет mysql использовать любые индексы в столбце, делая запрос очень медленным, когда таблица растет.
Вам не нужно игнорировать время, когда пользователь был создан, если вы удалили время с даты "3 месяца назад", так как все пользователи, созданные в этот день, будут соответствовать этому условию.
SELECT *
FROM users
WHERE user_datecreated >= DATE(NOW() - INTERVAL 3 MONTH);