Получить данные за предыдущие 3 месяца на основе текущей даты - MySQL - PullRequest
7 голосов
/ 21 сентября 2011

Как получить данные за предыдущие 3 месяца с помощью оператора SQL? например, если текущая дата 01.01.2012, то как получить данные за декабрь, ноябрь, октябрь 2011 года?

Пожалуйста, кто-нибудь направит меня.

1 Ответ

13 голосов
/ 21 сентября 2011
SELECT * FROM table1 
WHERE mydate BETWEEN DATE_SUB(now(), INTERVAL 3 MONTH) AND now()

Или, если вы хотите остаться в течение месяцев

SELECT * FROM table1 
WHERE MONTH(mydate) BETWEEN MONTH(DATE_SUB(now(), INTERVAL 3 MONTH)) AND MONTH(now())
  AND YEAR(mydate) BETWEEN YEAR(DATE_SUB(now(), INTERVAL 3 MONTH)) AND YEAR(now())

Эта последняя версия будет работать намного медленнее, потому что она не может использовать индекс для mydate однако.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...