Funkce try_subtract
Platí pro: Databricks SQL Databricks Runtime 10.4 LTS a vyšší
Vrátí odčítání expr2
od expr1
, nebo NULL
při přetečení.
Syntaxe
try_subtract ( 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.
Pokud výsledek přeteče typ výsledku Databricks SQL vrátí hodnotu NULL.
Při odečtení ročního intervalu od DATA Databricks SQL zajistíte, že výsledné datum je správně vytvořené.
Příklady
> 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