Partager via


Fonction try_subtract

S’applique à :coche marquée oui Databricks SQL oui coché 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 : si expr1 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 que expr2 est un intervalle de jour-heure, le résultat est de type TIMESTAMP.
  • Si expr1 et expr2 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 et expr2 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