+
Оператор (знак "плюс")
Область применения: 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.enabled имеет значение false
, переполнение не приводит к ошибке, но вместо этого "упаковывает" результат.
Примеры
> 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