Funktionen try_subtract
Gäller för: Databricks SQL
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
: Omexpr1
är ett numerisktexpr2
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 ochexpr2
är ett dagtidsintervall är resultatet en TIMESTAMP. - Om
expr1
ochexpr2
är årsmånadsintervall är resultatet ett årsmånadsintervall med tillräckligt breda enheter för att representera resultatet. - Om
expr1
ochexpr2
är dagtidsintervall är resultatet ett dagsintervall på tillräckligt breda enheter för att representera resultatet. - Annars matchar
expr1
resultattypen .
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