Funktionen try_subtract

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 10.4 LTS och senare

Returnerar subtraktionen för expr2 från expr1, eller NULL vid spill.

Syntax

try_subtract ( expr1 , expr2 )

Argument

  • expr1: Ett numeriskt uttryck, DATUM, TIDSSTÄMPEL eller INTERVALL-uttryck.
  • expr2: Om expr1 är ett numeriskt expr2 måste vara numeriskt uttryck, eller ett INTERVALL annars.

Returer

  • Om expr1 är ett numeriskt värde är den vanliga maximala typen av argument.
  • Om expr1 är ett DATUM och expr2 är ett dagtidsintervall är resultatet en TIMESTAMP.
  • Om expr1 och expr2 är årsmånadsintervall är resultatet ett årsmånadsintervall med tillräckligt breda enheter för att representera resultatet.
  • Om expr1 och expr2 är dagtidsintervall är resultatet ett dagsintervall på tillräckligt breda enheter för att representera resultatet.
  • Annars matchar expr1resultattypen .

Om båda uttrycken är intervall måste de ha samma klass.

Om resultatet spills över returnerar resultattypen Databricks SQL NULL.

När du subtraherar ett årsmånadsintervall från en DATE Databricks SQL ser du till att det resulterande datumet är välformat.

Exempel

> 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