+ (プラス記号) 演算子

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

expr1expr2 の合計を返します。

構文

expr1 + expr2

引数

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

戻り値

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

両方の式が間隔である場合、それらは同じクラスである必要があります。

年月の間隔を DATE に追加すると、Azure Databricks によって結果の日付が整形式であることが保証されます。

結果が結果の型をオーバーフローした場合、Azure Databricks で ARITHMETIC_OVERFLOW エラーが発生します。

オーバーフロー時に NULL を返すには try_add を使用します。

警告

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