Dela via


+ Operator (plustecken)

Gäller för: markerad ja Databricks SQL markerad ja Databricks Runtime

Returnerar summan av expr1 och expr2.

Syntax

expr1 + expr2

Argument

  • expr1: Ett numeriskt uttryck, DATUM, TIDSSTÄMPEL eller INTERVALL-uttryck.
  • expr2: Om expr1 är ett numeriskt expr2 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 och expr2 är ett dagtidsintervall är resultatet en TIMESTAMP.
  • Om expr1 och expr2 är årsmånadsintervall är resultatet ett årsmånadsintervall med tillräckligt breda enheter för att representera resultatet.
  • Om expr1 och expr2 är dagtidsintervall är resultatet ett dagsintervall på tillräckligt breda enheter för att representera resultatet.
  • Annars matchar expr1resultattypen .

Om båda uttrycken är intervall måste de ha samma klass.

När du lägger till ett årsmånadsintervall till ett DATUM ser Azure Databricks till att det resulterande datumet är välformat.

Om resultatet flödar över resultattypen genererar Azure Databricks ett ARITHMETIC_OVERFLOW fel.

Använd try_add för att returnera NULL vid spill.

Varning

I Databricks Runtime, om spark.sql.ansi.enabled är false, orsakar ett spill inte ett fel utan "omsluter" resultatet i stället.

Exempel

> 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