OVERLAPS
📄字数 1.0K
👁️阅读量 加载中...
功能描述
判断两个时间区间是否存在重叠(即是否有交集)。
语法格式
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。
执行类型
| TYPE | VALUE | 说明 |
|---|---|---|
| NATIVE | 0 | 函数只能在本地计算 |
| VOLATI | 0 | 函数的每次计算值不同 |
| STABLE | 0 | 函数的每次计算值相同 |
| COMPUTE | 0 | 函数支持预计算取值 |
| NOT_CONST | 0 | 函数不支持转常数 |
| HAVE_DEF | 0 | 函数参数有默认值 |
示例
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 |
+-------+