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 |
+-------+