У меня есть эта запись:
[id | dateofit ]
[ 1 | 2017-12-1]
Который я хочу выбрать с помощью этого запроса:
SELECT id FROM records WHERE MONTH(dateofit) BETWEEN 12 AND 2
Проблема в том, что 12
из 2017
и 2
с 2018
, поэтому я не получаю никаких результатов,
Я попытался заменить запрос как этот MONTH(dateofit) BETWEEN MONTH(12) AND MONTH(1)
Но все та же проблема
То, что я хочу сделать, это выбрать записи в месяц [12, 1 (newyear), 2 (newyear)]
Почему бы не предоставить только временной диапазон?
SELECT id FROM records WHERE dateofit BETWEEN "2017-12-01 00:00:00" AND "2018-03-01 23:59:59";
12
и 2
не заботясь о году?
month(date of it) in (12,1,2)
Вот два возможных подхода: если у вас есть только данные с марта 2017 года по ноябрь 2018 года:
SELECT
id
FROM
records
WHERE
MONTH(dateofit) IN (12, 1, 2)
Если у вас есть многолетние данные:
SELECT
id
FROM
records
WHERE
dateofit BETWEEN '2017-12-01' AND '2018-02-28'
Попробуй это:
SELECT id FROM records
WHERE ( YEAR(dateofit) = 2017 AND MONTH(dateofit) = 12) OR
( YEAR(dateofit) = 2018 AND MONTH(dateofit) IN (1, 2));
dateofit >= '2017-12-01' and dataofit < '2018-03-01'