Sdílet prostřednictvím


Funkce try_subtract

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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: Pokud expr1 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 a expr2 jedná se o denní interval, výsledkem je časové razítko.
  • Pokud expr1 a expr2 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á o expr2 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