Funkce try_subtract
Platí pro: Databricks SQL
Databricks Runtime 10.4 LTS nebo vyšší
Vrátí rozdíl expr1
a expr2
, 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é, pak musí býtexpr2
číselným výrazem, jinak musí být intervalem.
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 rok-měsíc, výsledkem je interval dostatečně širokých jednotek, aby mohl reprezentovat výsledek. - Pokud jsou
expr1
aexpr2
denní intervaly, výsledkem je denní interval s dostatečně širokými jednotkami k reprezentaci výsledku. - 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ě-měsíčního intervalu od DATUM Databricks SQL zajistí, že výsledné datum je správně vytvořeno.
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