+
(znaménko plus) – operátor
Platí pro: Databricks SQL Databricks Runtime
Vrátí součet a expr1
expr2
.
Syntaxe
expr1 + expr2
Argumenty
expr1
: Číselný výraz, DATUM, ČASOVÉ RAZÍTKO nebo INTERVAL.expr2
: Pokudexpr1
je číselnýexpr2
výraz, musí být číselný výraz nebo jinak interval.
Návraty
- Pokud
expr1
je argument číselný, jedná se o společný maximální typ argumentů. - Pokud
expr1
je datem aexpr2
jedná se o denní interval, výsledkem je časové razítko. - Pokud
expr1
aexpr2
jsou intervaly mezi rokem, je výsledkem interval rok-měsíc dostatečně širokých jednotek, aby představoval výsledek. - Pokud
expr1
se jedná oexpr2
denní intervaly, je výsledkem denní interval dostatečně širokých jednotek, aby představoval výsledek. - V opačném případě se typ výsledku shoduje
expr1
.
Pokud jsou oba výrazy interval, musí mít stejnou třídu.
Když k datu přidáte interval pro rok, Azure Databricks zajistí, že výsledné datum bude správně vytvořené.
Pokud výsledek přeteče typ výsledku, Azure Databricks vyvolá ARITHMETIC_OVERFLOW chybu.
K návratu NULL
do přetečení použijte try_add.
Upozorňující
Pokud je ve službě Databricks Runtime spark.sql.ansi.enabled false
, přetečení nezpůsobí chybu, ale místo toho výsledek zabalí.
Příklady
> 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