Как найти пересечение двух диапазонов дат?

Есть два диапазона дат: 01.01.2019 - 31.05.2019 и 01.03.2019 - 31.12.2019.

Как найти их пересечение?
В результате необходимо получить: 01.03.2019 - 31.05.2019.
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Условие пересечения:
start1 < end2 && start2 < end1
Область пересечения:
[max(start1, start2), min(end1, end2)]
Ответ написан
@kalter1808
Postgres умеет работать с диапазонами дат.
set datestyle to DMY;
select daterange('01-01-2019'::date,'31-05-2019'::date) * daterange('01-03-2019'::date,'31-12-2019'::date)

Вот это пример возвратит вам
[2019-03-01, 2019-05-31)

Больше о диапазонах здесь:
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы