Delen via


try_subtract-functie

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 10.4 LTS en hoger

Retourneert de aftrekking van expr2 expr1of NULL bij overloop.

Syntaxis

try_subtract ( expr1 , expr2 )

Argumenten

  • expr1: Een numerieke, DATUM-, TIMESTAMP- of INTERVAL-expressie.
  • expr2: Als expr1 het een numerieke expr2 expressie is, moet een numerieke expressie of een INTERVAL anders zijn.

Retouren

  • Als expr1 dit een numerieke waarde is, wordt het algemene maximumtype van de argumenten gebruikt.
  • Als expr1 het een DATUM is en expr2 een dag-tijdsinterval is, is het resultaat een TIJDSTEMPEL.
  • Als expr1 en expr2 jaarmaandintervallen zijn, is het resultaat een interval van een jaarmaand van voldoende brede eenheden om het resultaat weer te geven.
  • Als expr1 en expr2 dag-tijdintervallen zijn, is het resultaat een dag-tijdsinterval van voldoende brede eenheden om het resultaat weer te geven.
  • Anders komt het resultaattype overeen expr1.

Als beide expressies interval zijn, moeten ze van dezelfde klasse zijn.

Als het resultaat overloopt, retourneert Databricks SQL NULL.

Wanneer u een jaarmaandinterval aftrekken van een DATUM Databricks SQL, zorgt u ervoor dat de resulterende datum goed is opgemaakt.

Voorbeelden

> 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