F053, “OVERLAPS predicate”


BigQueryDb2 (LUW)DuckDBH2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite2007200920112013201520172019202120232025⊘ 3.5.7 - 3.51.0⊘ 2008R2 - 2025✓ 8.3 - 18⚡ 23.4 - 23.26.1d⚡ 11gR1 - 23.0abc⊘ 5.0 - 9.6.0⊘ 5.1 - 12.2.2⊘ 1.4.191 - 2.4.240⊘ 1.0.0 - 1.4.0⚠ 11.1 - 12.1.3c⊘ 9.7 - 10.5⊘ 2.0
  1. ⚡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
  2. ⚡Single null values 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
  3. Some variants
  4. ⚡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.

BigQuery 2026-02-02Db2 (LUW) 12.1.3DuckDB 1.4.0H2 2.4.240MariaDB 12.2.2MySQL 9.6.0Oracle DB 23.26.1PostgreSQL 18SQL Server 2025SQLite 3.51.0(start,     end)(start,interval)   (…,…)row(…,…)

Normative References

F053, “OVERLAPS predicate” is defined in ISO/IEC 9075-2:2023 as optional feature. The syntax first appeared in SQL-92 (intermediate).

You can’t catch up on 20 years of SQL evolution in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up and to keep modern-⁠sql.com on your radar.

About the Author

Photo of Markus Winand

Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at.

Buy the Book

Cover of “SQL Performance Explained”: Squirrel running on grass

The essence of SQL tuning in 200 pages

Buy now!
(paperback and/or PDF)

Paperback also available at Amazon.com.

Hire Markus

Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »

Connect with Markus Winand

Subscribe mailinglistsSubscribe the RSS feedMarkus Winand on LinkedInMarkus Winand on XINGMarkus Winand on MastodonMarkus Winand on Bluesky
Copyright 2015-2026 Markus Winand. All righs reserved.
Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR