Для получения полного доступа
зарегистрируйтесь.
Сниппет,  SQL

Пересекаются ли два интервала


Необходимое и достаточное условие пересечения или не пересечения двух интервалов времени или любых других отрезков используется, чаще всего, при составлении и валидации событий в расписаниях.

Обозначения

  • begin1, end1 - начало и конец первого интервала.
  • begin2, end2 - начало и конец второго интервала.

Интервалы пересекаются

begin1 <= end2 AND end1 >= begin2
SELECT *
FROM event
WHERE e.begin <= :end AND e.end >= :begin

Интервалы не пересекаются

begin1 > end2 OR end1 < begin2
SELECT *
FROM event
WHERE e.begin > :end OR e.end < :begin
  interval intersection

Автор


samdark
  • Репутация: 348
  • Сниппеты : 57
  • Ревизии : 5
Подписаться

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация