Функция try_add
Область применения: Databricks SQL Databricks Runtime 10.4 LTS и выше
Возвращает сумму expr1
и expr2
, или NULL в случае ошибки.
Синтаксис
try_add ( expr1 , expr2 )
Эту функцию также можно вызвать как функцию окна с помощью предложения OVER
.
Аргументы
-
expr1
: числовое выражение, DATE, TIMESTAMP или INTERVAL. -
expr2
: еслиexpr1
является числом, тоexpr2
должно содержать числовое выражение, а в противном случае — выражение INTERVAL.
Возвраты
- Если аргумент
expr1
является числовым, результат имеет тип, соответствующий максимальному общему типу аргументов. - Если параметр
expr1
имеет тип DATE, аexpr2
является интервалом типа "время дня", то возвращается результат с типом TIMESTAMP. - Если
expr1
иexpr2
являются интервалами "год-месяц", то результат также будет интервалом "год-месяц" с достаточно широкими единицами измерения для представления результата. - если
expr1
иexpr2
являются интервалами "время дня", то результат также будет интервалом "время дня" с достаточно широкими единицами измерения для представления результата; - в противном случае тип результата будет соответствовать
expr1
.
Если оба выражения являются интервалами, они должны быть одного класса.
Если результат переполняет тип результата, Databricks SQL возвращает значение NULL.
При сложении интервала типа "год-месяц" с выражением DATE среда Databricks SQL автоматически обеспечит правильный формат полученного значения даты.
Примеры
> SELECT try_add(1, 2);
3
> SELECT try_add(DATE'2021-03-20', INTERVAL '2' MONTH);
2021-5-20
> SELECT try_add(TIMESTAMP'2021-03-20 12:15:29', INTERVAL '3' SECOND);
2021-03-20 12:15:32
> SELECT typeof(try_add(INTERVAL '3' DAY, INTERVAL '2' HOUR));
interval day to hour
> SELECT try_add(DATE'2021-03-31', INTERVAL '1' MONTH);
2021-04-30
> SELECT try_add(127Y, 1Y);
NULL