OVERLAPS

计算两个时间段,并在其重叠时返回 true,否则返回 false。

行为类型

  • 当同时使用 TIMESTAMPTIMESTAMPTZ 或将 TIMESTAMPTZINTERVAL 配合使用时,则为 稳定

  • 否则为 不可变

语法

( start, end ) OVERLAPS ( start, end )
( start, interval) OVERLAPS ( start, interval )

参数

start
DATETIMETIMESTAMP/TIMESTAMPTZ 值,用于指定时间段的开始日期。
end
DATETIMETIMESTAMP/TIMESTAMPTZ 值,用于指定时间段的结束日期。
interval
指定时间段长度的值。

示例

求值日期范围 2016 年 2 月 16 日 - 12 月 21 日与 2008 年 10 月 10 日 - 2016 年 10 月 3 日是否重叠:

=> SELECT (DATE '2016-02-16', DATE '2016-12-21') OVERLAPS (DATE '2008-10-30', DATE '2016-10-30');
 overlaps
----------
 t
(1 row)

求值日期范围 2016 年 2 月 16 日 - 12 月 21 日与 2008 年 1 月 1 日 - 10 月 30 日 - 2016 年 10 月 3 日是否重叠:

=> SELECT (DATE '2016-02-16', DATE '2016-12-21') OVERLAPS (DATE '2008-01-30', DATE '2008-10-30');
 overlaps
----------
 f
(1 row)

求值日期范围 2016 年 2 月 2 日 + 1 周与 2016 年 10 月 16 日 - 8 个月的日期范围是否重叠:

=> SELECT (DATE '2016-02-16', INTERVAL '1 week') OVERLAPS (DATE '2016-10-16', INTERVAL '-8 months');
 overlaps
----------
 t
(1 row)