try_subtract
函数
适用于: Databricks SQL Databricks Runtime 10.4 LTS 及更高版本
返回在溢出时从 expr1
或 NULL
减去 expr2
得到的结果。
语法
try_subtract ( expr1 , expr2 )
参数
expr1
:数值、DATE、TIMESTAMP 或 INTERVAL 表达式。expr2
:如果expr1
是数值,则expr2
必须是数值表达式,否则为 INTERVAL。
返回
- 如果
expr1
是数值,则为参数的公共最大值类型。 - 如果
expr1
是 DATE,而expr2
是日期时间间隔,则结果是 TIMESTAMP。 - 如果
expr1
和expr2
是年月时间间隔,则结果为用于表示结果的足够宽单位的年月时间间隔。 - 如果
expr1
和expr2
是日期时间间隔,则结果为用于表示结果的足够宽单位的日期时间间隔。 - 否则,结果类型与
expr1
一致。
如果两个表达式均为时间间隔,则它们必须属于同一类。
如果结果溢出结果类型,则 Databricks SQL 则返回 NULL。
在从 DATE 减去年月时间间隔时,Databricks SQL 会确保生成的日期格式正确。
示例
> SELECT try_subtract(1, 2);
-1
> SELECT try_subtract(DATE'2021-03-20', INTERVAL '2' MONTH);
2021-1-20
> SELECT try_subtract(TIMESTAMP'2021-03-20 12:15:29', INTERVAL '3' SECOND);
2021-03-20 12:15:26
> SELECT typeof(try_subtract(INTERVAL '3' DAY, INTERVAL '2' HOUR));
interval day to hour
> SELECT try_subtract(DATE'2021-03-31', INTERVAL '1' MONTH);
2021-02-28
> SELECT try_subtract(-128Y, 1Y);
NULL