+ (znak plus) — operator

Dotyczy:sprawdź oznaczone jako tak Zaznaczone pole wyboru SQL usługi Databricks oznaczone jako tak Databricks Runtime

Zwraca sumę wartości expr1 i expr2.

Składni

expr1 + expr2

Argumenty

  • expr1: wyrażenie liczbowe, DATE, TIMESTAMP lub INTERVAL.
  • expr2: Jeśli expr1 wartość jest liczbowa expr2 , musi być wyrażeniem liczbowym lub interwałem.

Zwraca

  • Jeśli expr1 jest wartością liczbową, typowym maksymalnym typem argumentów.
  • Jeśli expr1 jest to DATA i expr2 jest interwałem dziennym, wynik jest sygnaturą CZASOWĄ.
  • Jeśli expr1 i expr2 są interwałami miesiąc-rok, wynik jest interwałem miesiąca wystarczająco szerokiej liczby jednostek do reprezentowania wyniku.
  • Jeśli expr1 i expr2 są interwałami dni, wynik jest interwałem dziennym wystarczająco szerokich jednostek do reprezentowania wyniku.
  • W przeciwnym razie typ wyniku jest zgodny z .expr1

Jeśli oba wyrażenia są interwałem, muszą należeć do tej samej klasy.

Po dodaniu interwału miesięcznego do daty usługa Azure Databricks zapewnia, że wynikowa data jest prawidłowo sformułowana.

Jeśli wynik przepełni typ wyniku, usługa Azure Databricks zgłosi błąd ARITHMETIC_OVERFLOW .

Użyj try_add , aby powrócić NULL po przepełnieniu.

Ostrzeżenie

W środowisku Databricks Runtime, jeśli parametr spark.sql.ansi.enabled to false, przepełnienie nie powoduje błędu, ale "opakowuje" wynik.

Przykłady

> 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