Fonction try_subtract
S’applique à : Databricks SQL Databricks Runtime 10.4 LTS et versions ultérieures
Retourne la soustraction de expr2
à expr1
, ou NULL
en cas de dépassement.
Syntaxe
try_subtract ( expr1 , expr2 )
Arguments
expr1
: expression numérique, DATE, TIMESTAMP ou INTERVAL.expr2
: siexpr1
est une valeur numérique,expr2
doit être une expression numérique, ou de type intervalle (INTERVAL) dans le cas contraire.
Retours
- Si
expr1
est une expression numérique, type maximal commun des arguments. - Si
expr1
est de type DATE et queexpr2
est un intervalle de jour-heure, le résultat est de type TIMESTAMP. - Si
expr1
etexpr2
sont des intervalles d’année-mois, le résultat est un intervalle d’année-mois qui correspond à des unités suffisamment grandes pour représenter le résultat. - Si
expr1
etexpr2
sont des intervalles de jour-heure, le résultat est un intervalle de jour-heure qui correspond à des unités suffisamment grandes pour représenter le résultat. - Sinon, le type de résultat correspond à
expr1
.
Si les deux expressions sont des intervalles, elles doivent être de la même classe.
Si le résultat dépasse le type de résultat Databricks SQL retourne la valeur NULL.
Lorsque vous soustrayez un intervalle d’année-mois à partir d’une DATE, Databricks SQL s’assure que la date résultante est bien formée.
Exemples
> 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