+
(加號) 運算子
適用于: Databricks SQL Databricks Runtime
傳回 和 的總 expr1
和 expr2
。
語法
expr1 + expr2
參數
expr1
:數值、DATE、TIMESTAMP 或 INTERVAL 運算式。expr2
:如果expr1
是數值必須是數值expr2
運算式,則為 INTERVAL,否則為 INTERVAL。
返回
- 如果
expr1
是數值,則為引數的通用最大類型。 - 如果
expr1
是 DATE,而且expr2
是一天時間間隔,則結果會是 TIMESTAMP。 - 如果
expr1
和expr2
是年月間隔,則結果為寬度夠寬單位的年月間隔,以表示結果。 - 如果
expr1
和expr2
是日時間間隔,則結果會是夠寬單位的日時間間隔,以表示結果。 - 否則,結果類型會比對
expr1
。
如果兩個運算式都是間隔,它們必須屬於相同的類別。
當您將年月間隔新增至 DATE 時,Azure Databricks 可確保產生的日期格式正確。
如果結果溢位結果類型,Azure Databricks 就會引發 ARITHMETIC_OVERFLOW 錯誤。
使用 try_add 在溢位時傳回 NULL
。
警告
在 Databricks Runtime 中,如果 spark.sql.ansi.enabled 為 false
,則溢位不會造成錯誤,而是會改為「包裝」結果。
例子
> SELECT 1 + 2;
3
> SELECT DATE'2021-03-20' + INTERVAL '2' MONTH
2021-5-20
> SELECT TIMESTAMP'2021-03-20 12:15:29' + INTERVAL '3' SECOND
2021-03-20 12:15:32
> SELECT typeof(INTERVAL '3' DAY + INTERVAL '2' HOUR)
interval day to hour
> SELECT DATE'2021-03-31' + INTERVAL '1' MONTH;
2021-04-30
> SELECT 127Y + 1Y;
Error: ARITMETIC_OVERFLOW