Partager via


+Opérateur + (signe plus)

S’applique à : case marquée oui Databricks SQL case marquée oui Databricks Runtime

Retourne la somme des valeurs expr1 et expr2.

Syntaxe

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.

Quand vous ajoutez un intervalle d’année-mois à une DATE, Azure Databricks vérifie que la date résultante est correctement mise en forme.

Si le résultat dépasse le type de résultat, Azure Databricks génère une erreur ARITHMETIC_OVERFLOW.

Utilisez try_add pour retourner NULL en cas de dépassement de capacité.

Avertissement

Dans Databricks Runtime, si spark.sql.ansi.enabled est false, un dépassement ne provoque pas d’erreur, mais « enveloppe » le résultat à la place.

Exemples

> SELECT 1 + 2;
 3

> SELECT DATE'2021-03-20' + INTERVAL '2' MONTH
 2021-5-20

> SELECT TIMESTAMP'2021-03-20 12:15:29' + INTERVAL '3' SECOND
 2021-03-20 12:15:32

> SELECT typeof(INTERVAL '3' DAY + INTERVAL '2' HOUR)
 interval day to hour

> SELECT DATE'2021-03-31' + INTERVAL '1' MONTH;
 2021-04-30

> SELECT 127Y + 1Y;
 Error: ARITMETIC_OVERFLOW