適用於:
Databricks SQL
Databricks Runtime 10.4 LTS 和更新版本
傳回 expr2 減 expr1 的結果,溢位時則傳回 NULL。
語法
try_subtract ( expr1 , expr2 )
引數
-
expr1:數值、日期、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