Urichalex
@Urichalex
Кратко о себе)

Как правильно составить выборку MySQL по датам?

Привет. Нужно выбрать записи, которые входят в период
В базе в таблице есть записи с полями date_from и date_to
Например в базе есть записи
id  | date_from        | date_to
--------------------------------------------
1   | 2019-03-15       | 2019-03-30
2   | 2019-02-12       | NULL
3   | 2019-04-10       | 2019-05-25
4   | 2019-01-01       | 2019-02-02

NULL - означает, что дата действия не ограничена, то есть действует в текущее время тоже
Нужно выбрать все записи, которые входят в период с 2019-03-12 по 2019-03-26
Получается при нашем условии должны быть выбраны 1 и 2 запись, так как они входят в эти периоды.
Так вот, как правильно сделать выборку?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Условие пересечения интервалов:
begin1 <= end2 && begin2 <= end1
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
radar4ick
@radar4ick
web-developer
Select * 
from 'table' 
where (date(now()) between date(date_from) and date(date_to)) 
OR (date(date_from) <= date(now()) and date_to is null))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы