- ⚡Zero-length periods don’t overlap with start of other period.
(DATE'2026-01-07', DATE'2026-01-07') OVERLAPS (DATE'2026-01-07', DATE'2026-01-31')
The standard requires this to evaluate to true while this system makes it false - ⚡Single
nullvalues construct zero-length periods.NOT (DATE'2026-01-03', null) OVERLAPS (DATE'2026-01-07', DATE'2026-01-31')
The standard requires this to evaluate to unknown but this system gives true - Some variants
- ⚡Fails if one side consists of two null values.
(null, null) OVERLAPS (DATE'2026-01-07', DATE'2026-01-31')
The standard requires this to evaluate to unknown but this system gives an error
The overlaps predicate tests if two time ranges overlap. SQL offers two syntactically similar but semantically very different forms of the overlaps predicate: This overlaps predicate acts on two two-valued row values whereas the second might be an interval.
This overlaps predicate accepts reversed start-end ranges (like between symmetric) whereas any null value is taken as the end value. Then, null is treated as unknown.
Variants
SQL allows the periods to be specified by two points in time or by one point in time and an interval. As the operands are row values, the keyword row can be added prior to the parenthesis.
Related
Standard Features
T461, “Symmetric BETWEEN predicate”
T502, “Period predicates”:
overlaps,contains,precedes,succeedsOn application-time periods, never zero-length, no
null.
Non-Standard Features
&&on PostgreSQL range types: Range types treatnullas open end.
Normative References
F053, “OVERLAPS predicate” is defined in ISO/IEC 9075-2:2023 as optional feature. The syntax first appeared in SQL-92 (intermediate).

