try_subtract
-Funktion
Gilt für: Databricks SQL Databricks Runtime 10.4 LTS und höher
Gibt die Subtraktion von expr2
aus expr1
oder NULL
im Überlauf zurück.
Syntax
try_subtract ( expr1 , expr2 )
Argumente
expr1
: ein numerischer Ausdruck oder ein DATE-, TIMESTAMP- oder INTERVAL-Ausdruckexpr2
: Wennexpr1
ein numerischer Wert ist, mussexpr2
ein numerischer Ausdruck oder andernfalls ein INTERVAL sein.
Gibt zurück
- Wenn
expr1
ein numerischer Wert ist, der maximale Typ der Argumente - Wenn
expr1
ein DATE-Ausdruck undexpr2
ein Tages-/Zeit-Intervall ist, ist das Ergebnis ein TIMESTAMP-Ausdruck. - Wenn
expr1
undexpr2
Jahres-/Monats-Intervalle sind, ist das Ergebnis ein Jahres-/Monats-Intervall mit ausreichend breiten Einheiten, um das Ergebnis darstellen zu können. - Wenn
expr1
undexpr2
Tages-/Zeit-Intervalle sind, ist das Ergebnis ein Tages-/Zeit-Intervall mit ausreichend breiten Einheiten, um das Ergebnis darstellen zu können. - Andernfalls entspricht der Ergebnistyp
expr1
.
Wenn beide Ausdrücke ein Intervall sind, müssen sie derselben Klasse angehören.
Wenn das Ergebnis einen Überlauf des Ergebnistyps verursacht, gibt Databricks SQL NULL zurück.
Wenn Sie ein Jahres-Monats-Intervall von einem DATE-Wert subtrahieren, stellt Databricks SQL sicher, dass das sich ergebende Datum wohlgeformt ist.
Beispiele
> 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