+
Operátor (znaménko plus)
Platí pro: Kontrola Databricks SQL
Databricks Runtime
Vrátí součet hodnot expr1
a expr2
.
Syntaxe
expr1 + expr2
Argumenty
expr1
: Číselný výraz, DATUM, ČASOVÉ RAZÍTKO nebo INTERVAL.expr2
: Pokudexpr1
je číselnýexpr2
, musí být číselný výraz, jinak interval.
Vrátí
- Pokud
expr1
je číselný, jedná se o společný maximální typ argumentů. - Pokud
expr1
je hodnota DATUM aexpr2
jedná se o denní interval, výsledkem je časové razítko. - Pokud
expr1
aexpr2
jsou intervaly mezi rokem a měsíci, výsledkem je interval mezi rokem a měsícem s dostatečně širokými jednotkami, aby byl výsledek reprezentovaný. - Pokud
expr1
aexpr2
jsou denní intervaly, výsledkem je denní interval dostatečně širokých jednotek, aby reprezentoval výsledek. - V opačném případě typ výsledku odpovídá
expr1
.
Pokud jsou oba výrazy intervalem, musí být stejné třídy.
Když k datu přidáte interval mezi rokem a měsícem, Azure Databricks zajistí, aby výsledné datum bylo správně tvarované.
Pokud výsledek přeteče typ výsledku, Azure Databricks vyvolá chybu ARITHMETIC_OVERFLOW .
K návratu NULL
k přetečení použijte try_add.
Upozornění
Pokud je false
v modulu Databricks Runtime spark.sql.ansi.enabled , 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