Функция try_subtract
Область применения: Databricks SQL Databricks Runtime 10.4 LTS и выше
Возвращает результат вычитания expr2
из expr1
или NULL
при переполнении.
Синтаксис
try_subtract ( expr1 , expr2 )
Аргументы
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_subtract(1, 2);
-1
> SELECT try_subtract(DATE'2021-03-20', INTERVAL '2' MONTH);
2021-1-20
> SELECT try_subtract(TIMESTAMP'2021-03-20 12:15:29', INTERVAL '3' SECOND);
2021-03-20 12:15:26
> SELECT typeof(try_subtract(INTERVAL '3' DAY, INTERVAL '2' HOUR));
interval day to hour
> SELECT try_subtract(DATE'2021-03-31', INTERVAL '1' MONTH);
2021-02-28
> SELECT try_subtract(-128Y, 1Y);
NULL