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