次の方法で共有


try_subtract 関数

適用対象: check marked yes Databricks SQL Databricks Runtime 10.4 LTS 以降

expr1 から expr2 の減算、またはオーバーフロー時に NULL の減算を返します。

構文

try_subtract ( expr1 , expr2 )

引数

  • expr1: DATE、TIMESTAMP、または INTERVAL の数値式。
  • expr2: expr1 が数値である場合、expr2 は数値式である必要があります。それ以外の場合は、INTERVAL である必要があります。

戻り値

  • expr1 が数値である場合は、引数の共通最大型です。
  • expr1 が DATE であり、expr2 が日付と時刻の間隔である場合、結果は TIMESTAMP です。
  • expr1expr2 が年月の間隔の場合、結果は、結果を表すために十分に広い単位の 1 か月の間隔になります。
  • expr1expr2 が日付と時刻の間隔である場合、結果は、結果を表すための十分に幅広い単位での日付と時刻の間隔です。
  • それ以外の場合、結果の型は、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