- Some variants
- ⚡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
⚡Singlenullvalues 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
⚡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 • Some variants - Without keyword
for:PERIODFORBUSINESS_TIME (…) - Using the
btree_gistextension and a range:BUSINESS_TIME tsrange GENERATED ALWAYS AS (tsrange(start_ts, end_ts)) STORED• Functionality available with exclusion constraints
Related
Standard Features
Overlapson row-values: Symmetric, potentially zero-length,nullis unknownT502, “Period predicates”:
overlaps,contains,precedes,succeedsOn application-time periods, never zero-length, no
null.T181, “Application-time period tables”
Non-Standard Features
&&on PostgreSQL range types: Range types treatnullas open end.

