mysql выбирают записи, больше, чем 3 месяца

Я пытаюсь записать запрос для выбора всех записей из users таблица, где User_DateCreated (поле даты и времени),> = 3 месяца с сегодняшнего дня.

Какие-либо идеи?

17
задан Vikrant 2 December 2016 в 09:55
поделиться

3 ответа

SELECT  *
FROM    users
WHERE   user_datecreated >= NOW() - INTERVAL 3 MONTH
65
ответ дан 30 November 2019 в 10:01
поделиться

Если вы хотите игнорировать время дня, когда был создан пользователь, вы можете использовать следующее. Таким образом, это покажет кого-то, созданного в 8:00, если вы запустите пример запроса Quassnoi в 14:00.

SELECT  *
FROM    users
WHERE   DATE(user_datecreated) >= DATE(NOW() - INTERVAL 3 MONTH)
12
ответ дан 30 November 2019 в 10:01
поделиться

Использование DATE(user_datecreated) не позволяет mysql использовать какие-либо индексы для столбца, что делает запрос очень медленным, когда таблица растет.

Вам не нужно игнорировать время, когда пользователь был создан, если вы удалите время из даты "3 месяца назад", так как все пользователи, созданные в тот день, будут соответствовать условию.

SELECT  *
FROM    users
WHERE   user_datecreated >= DATE(NOW() - INTERVAL 3 MONTH);
3
ответ дан 30 November 2019 в 10:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: