Этот предикат служит для проверки перекрытия во времени двух событий. Условие определяется следующим синтаксисом:
<overlaps predicate> ::= <row value constructor 1> OVERLAPS <row value constructor 2> <row value constructor 1> ::= <row value constructor> <row value constructor 2> ::= <row value constructor>
Пояснения:
Степень каждой из строк-операндов должна быть равна 2.
Тип данных первого столбца каждого из операндов должен быть типом даты-времени, и типы данных первых столбцов должны быть совместимы.
Тип данных второго столбца каждого из операндов должен быть типом даты-времени или интервала.
(a) если это тип интервала, то точность типа должна быть такой, чтобы интервал можно было прибавить к значению типа дата-время первого столбца;
(b) если это тип дата-время, то он должен быть совместим с типом данных дата-время первого столбца.
Пусть D1 и D2 обозначают значения первого столбца первого и второго операндов соответственно.
Если второй столбец первого операнда имеет тип дата-время, то пусть E1 обозначает его значение.
Если второй столбец первого операнда имеет тип INTERVAL, то пусть I1 обозначает его значение, а E1 = D1 + I1.
Если D1 - неопределенное значение или если E1 < D1, то пусть S1 = E1 и T1 = D1. Иначе, пусть S1 = D1 и T1 = E1.
Аналогично определяются S2 и T2 применительно ко второму операнду.
Результат условия совпадает с результатом вычисления следующего выражения: