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 het verschil van expr2 met expr1, of NULL in geval van overloop.

Syntaxis

try_subtract ( expr1 , expr2 )

Argumenten

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

Retouren

  • Als expr1 een numerieke waarde is, dan is het gemeenschappelijke maximumtype van de argumenten.
  • 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 met expr1.

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

Als het resultaat overloopt, retourneert Databricks SQL NULL.

Wanneer u een jaar-maandinterval aftrekt van een datum, zal Databricks SQL ervoor zorgen dat de resulterende datum correct is.

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