Поделиться через


Оператор + (знак плюса)

Область применения: флажок Databricks SQL флажок Databricks Runtime

Возвращает сумму expr1 и expr2.

Синтаксис

expr1 + expr2

Аргументы

  • expr1: числовое выражение, DATE, TIMESTAMP или INTERVAL.
  • expr2: если expr1 является числом, то expr2 должно содержать числовое выражение, а в противном случае — выражение INTERVAL.

Возвраты

  • Если аргумент expr1 является числовым, результат имеет тип, соответствующий максимальному общему типу аргументов.
  • Если параметр expr1 имеет тип DATE, а expr2 является интервалом типа "время дня", то возвращается результат с типом TIMESTAMP.
  • Если expr1 и expr2 являются интервалами "год-месяц", то результат также будет интервалом "год-месяц" с достаточно широкими единицами измерения для представления результата.
  • если expr1 и expr2 являются интервалами "время дня", то результат также будет интервалом "время дня" с достаточно широкими единицами измерения для представления результата;
  • в противном случае тип результата будет соответствовать expr1.

Если оба выражения являются интервалами, они должны быть одного класса.

При добавлении интервала года в ДАТУ Azure Databricks гарантирует, что результирующая дата хорошо сформирована.

Если результат переполняет тип результата, Azure Databricks вызывает ошибку ARITHMETIC_OVERFLOW .

Используйте try_add для возврата NULL при переполнении.

Предупреждение

В Databricks Runtime, если spark.sql.ansi.enabledfalse, переполнение не приводит к ошибке, но "заворачивает" результат вместо этого.

Примеры

> 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