Допустим, это примерные диапазоны дат -
from_date => to_date
2018-01-01 => 2018-04-01
2018-02-15 => 2018-03-01
2018-02-01 => 2018-02-07
2018-03-01 => 2018-03-05
Я хочу найти диапазоны дат, которые прошли до февраля 2018 года.
Я попробовал этот.Итак, я выбрал случайную дату с февраля 2018 года и искал эти два условия.
select * from enroll
where
(from_date between DATE_FORMAT(DATE("2018-02-01") ,'%Y-%m-01') and LAST_DAY("2018-02-01"))
or
(to_date between DATE_FORMAT(DATE("2018-02-01") ,'%Y-%m-01') and LAST_DAY("2018-02-01"))
or
(from_date < DATE_FORMAT(DATE("2018-02-01") ,'%Y-%m-01') and to_date > LAST_DAY("2018-02-01"))
- Если от_даты до to_date между первой и последней датой этого месяца
- Если из_датыменьше первой даты этого месяца, а to_date больше последней даты этого месяца.
Пожалуйста, дайте мне знать, будет ли это работать или есть лучший способ сделать это.