Оператор +
(знак плюса)
Область применения: 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