Даты, меньшие или равные 6 месяцам, но не включающие даты> сегодня - 2 дня
Используя MySQl, у меня есть таблица со столбцом datetime типа данных, и мне нужно выбрать строки с datetime <6 месяцев текущей даты, но также исключить первые 2 дня.
ПРИМЕР:
На сегодня 27.01.2017 -
Мне нужны записи с 27.01.2017 по 27.07.2016 (это ИНТЕРВАЛ из 6 МЕСЯЦЕВ), минус первые 2 дня (26.01.2017 и 27.01.2017).
Так что мои результаты будут в списке дат с 25.01.2017 по 27.07.2016.
Что у меня так далеко
SELECT * FROM myTable WHERE myDateTime >= DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH) AND (DATE(date_add(myDateTime, INTERVAL 2 DAY))) < DATE(CURRENT_DATE())
Должно ли это работать? Есть ли лучший способ сделать это?
1 ответ
Как насчет:
SELECT * FROM myTable WHERE DATE(myDateTime) >= DATE(NOW() - interval 6 month + interval 2 day))
Изменить: Только что увидел, что вам нужно, чтобы оно было историческим, поэтому настройте на:
SELECT * FROM myTable WHERE DATE(myDateTime) BETWEEN DATE(NOW() - interval 6 month + interval 2 day) AND DATE(NOW())