Sdílet prostřednictvím


Funkce try_subtract

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano 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: Pokud expr1 je číselné, pak musí být expr2 čí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 a expr2 jedná se o denní interval, výsledkem je časové razítko.
  • Pokud expr1 a expr2 jsou intervaly rok-měsíc, výsledkem je interval dostatečně širokých jednotek, aby mohl reprezentovat výsledek.
  • Pokud jsou expr1 a expr2 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