MySQL Выбор динамического диапазона дат - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть столбец datetime, и я хочу выбрать все строки за предыдущие 2 полных месяца (сентябрь и октябрь, в настоящее время). Вручную я мог бы составить этот запрос как:

where date_column between '2018-09-01' and '2018-10-31'

но как я могу сделать это программно, чтобы конечная дата всегда была правильной? Я думал

where date_column between concat(substr(now() - INTERVAL 2 month, 1, 7), '-01') and concat(substr(now() - INTERVAL 1 month, 1, 7), '-31')

, но 31 будет неправильным для ноября, февраля и т. Д.

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете отформатировать дату и просто жестко закодировать день так: 1:

date_column BETWEEN
            DATE_FORMAT(NOW() - INTERVAL 2 MONTH, '%Y-%m-01') AND
            DATE_FORMAT(NOW(), '%Y-%m-01') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...