Я пытаюсь записать запрос для выбора всех записей из users
таблица, где User_DateCreated
(поле даты и времени),> = 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);