Intereting Posts
php вставляет несколько значений в отдельные строки в таблице mysql Установка контрольных точек Xdebug исключительно в командной строке как преобразовать японский английский характер нормальному английскому персонажу? Отображение сообщения, когда набор результатов пуст PHP cURL, извлечение XML-ответа Удаление строк из нескольких таблиц в MySQL ZEND – Как заставить его работать на общем хосте? Symfony Bundle: как избежать использования __DIR__ для построения пути к сопоставлениям Doctrine Выход Json_encode umlauts Изменение диалогового окна подтверждения javascript для загрузки Symfony 2 Forms entity Тип поля Тип TokenMismatchException в VerifyCsrfToken.php Laravel 5.2 База данных запросов через Javascript / PHP Как добавить дополнительные поля и связанные геттеры / сеттеры из внешнего файла в один или несколько объектов Symfony / Doctrine, без наследования? Как преобразовать массив объектов данных модели в dataProvider

mysql выбирает записи более 3 месяцев

Я пытаюсь написать запрос, чтобы выбрать все записи из таблицы 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);