+
(znak plus) — operator
Dotyczy: wyboru SQL usługi Databricks Databricks Runtime
Zwraca sumę wartości expr1
i expr2
.
Składni
expr1 + expr2
Argumenty
expr1
: wyrażenie liczbowe, DATE, TIMESTAMP lub INTERVAL.expr2
: Jeśliexpr1
wartość jest liczbowaexpr2
, musi być wyrażeniem liczbowym lub interwałem.
Zwraca
- Jeśli
expr1
jest wartością liczbową, typowym maksymalnym typem argumentów. - Jeśli
expr1
jest to DATA iexpr2
jest interwałem dziennym, wynik jest sygnaturą CZASOWĄ. - Jeśli
expr1
iexpr2
są interwałami miesiąc-rok, wynik jest interwałem miesiąca wystarczająco szerokiej liczby jednostek do reprezentowania wyniku. - Jeśli
expr1
iexpr2
są interwałami dni, wynik jest interwałem dziennym wystarczająco szerokich jednostek do reprezentowania wyniku. - W przeciwnym razie typ wyniku jest zgodny z .
expr1
Jeśli oba wyrażenia są interwałem, muszą należeć do tej samej klasy.
Po dodaniu interwału miesięcznego do daty usługa Azure Databricks zapewnia, że wynikowa data jest prawidłowo sformułowana.
Jeśli wynik przepełni typ wyniku, usługa Azure Databricks zgłosi błąd ARITHMETIC_OVERFLOW .
Użyj try_add , aby powrócić NULL
po przepełnieniu.
Ostrzeżenie
W środowisku Databricks Runtime, jeśli parametr spark.sql.ansi.enabled to false
, przepełnienie nie powoduje błędu, ale "opakowuje" wynik.
Przykłady
> 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