OVERLAPS
📄字数 927
👁️阅读量 加载中...
功能描述
判断两个时间区间是否存在重叠(即是否有交集)。
语法格式
sql
OVERLAPS(expr1, expr2, expr3, expr4)
(expr1, expr2) OVERLAPS (expr3, expr4)
输入参数
expr1
:DATETIME
、DATETIME WITH TIME ZONE
类型或者能隐式转换为DATETIME
、DATETIME WITH TIME ZONE
类型的其他类型的值或者表达式。expr2
:DATETIME
、DATETIME WITH TIME ZONE
、INTERVAL DAY TO SECOND
、INTERVAL YEAR TO MONTH
类型或者能隐式转换为DATETIME
、DATETIME WITH TIME ZONE
、INTERVAL DAY TO SECOND
、INTERVAL YEAR TO MONTH
类型的其他类型的值或者表达式。expr3
:DATETIME
、DATETIME WITH TIME ZONE
类型或者能隐式转换为DATETIME
、DATETIME WITH TIME ZONE
类型的其他类型的值或者表达式。expr4
:DATETIME
、DATETIME WITH TIME ZONE
、INTERVAL DAY TO SECOND
、INTERVAL YEAR TO MONTH
类型或者能隐式转换为DATETIME
、DATETIME WITH TIME ZONE
、INTERVAL DAY TO SECOND
、INTERVAL YEAR TO MONTH
类型的其他类型的值或者表达式。
注意
expr2
、expr4
使用的数据类型必须一致,当类型为 INTERVAL
间隔类型时,表示的时间区间终点为:expr1 + expr2
和 expr3 + expr4
。
输出结果
BOOLEAN
类型,当任意输入参数为 NULL
时,输出结果为 NULL
。
示例
sql
-- 判断时间区间是否重叠
SQL> SELECT OVERLAPS(SYSDATE+1, CAST('1-1' AS INTERVAL YEAR TO MONTH), SYSDATE+200, CAST('1-1' AS INTERVAL YEAR TO MONTH)) FROM dual;
+-------+
| EXPR1 |
+-------+
| T |
+-------+
SQL> SELECT ('2025-05-05 15:32:45', '2025-05-05 15:32:45') OVERLAPS ('2025-05-05 15:32:45', '2025-05-05 15:32:45');
+-------+
| EXPR1 |
+-------+
| T |
+-------+