日付と時刻のデータ型¶
Snowflakeは、日付、時刻、タイムスタンプ(日付と時刻の組み合わせ)を管理するデータ型をサポートしています。Snowflakeは、日付、時刻、タイムスタンプの操作に使用される文字列定数もサポートします。
データ型¶
Snowflake は以下の日付と時刻のデータ型をサポートしています。
注釈
DATE と TIMESTAMP のデータの場合、Snowflakeは、1582と9999の間の年を使用することをお勧めします。Snowflakeは、この範囲外の数年を受け入れますが、 グレゴリオ暦の制限 のため、1582より前の年は避ける必要があります。
DATE¶
Snowflakeは、日付を保存するための単一の DATE データ型をサポートしています(時間要素はなし)。
DATE は、最も一般的な形式(YYYY-MM-DD、 DD-MON-YYYY など)の日付を受け入れます。
また、 TIMESTAMP 値はすべて日付の入力として有効ですが、 TIME の情報は切り捨てられます。
DATETIME¶
DATETIME は、 TIMESTAMP_NTZと同義語です。
インターバルデータ型¶
間隔データ型は、期間を表す値を格納します。2つの日付または時刻の差として間隔を計算できます。間隔は期間のみを定義するため、時間の開始ポイントまたは終了ポイントはありません。たとえば、間隔を3年と7か月として定義できます。
Snowflakeは、年月を表すインターバルデータ型について、次のバリエーションをサポートしています。
データ型 |
説明 |
|---|---|
INTERVAL YEAR |
期間を年単位で表します。 |
INTERVAL YEAR TO MONTH |
期間を年と月で表します。 |
INTERVAL MONTH |
期間を月で表します。 |
Snowflakeは、日数と時間を表すインターバルデータ型について、次のバリエーションをサポートしています。
データ型 |
説明 |
|---|---|
INTERVAL DAY |
期間を日数で表します。 |
INTERVAL DAY TO HOUR |
期間を日数と時間で表します。 |
INTERVAL DAY TO MINUTE |
期間を日数、時間、分で表します。 |
INTERVAL DAY TO SECOND |
期間を日、時間、分、秒、小数秒で表します。 |
INTERVAL HOUR |
期間を時間単位で表します。 |
INTERVAL HOUR TO MINUTE |
期間を時間と分で表します。 |
INTERVAL HOUR TO SECOND |
期間を時間、分、秒、小数秒で表します。 |
INTERVAL MINUTE |
期間を分単位で表します。 |
INTERVAL MINUTE TO SECOND |
期間を分、秒、小数秒で表します。 |
INTERVAL SECOND |
期間を秒と小数秒で表します。 |
次のセクションでは、インターバルデータ型の詳細について説明します。
注釈
日付と時刻の演算に:ref:`インターバル定数<label-interval_constants>`を使用することもできます。ただし、インターバル定数は、列タイプとしてのインターバルストレージをサポートしていません。
インターバルデータ型の利点¶
インターバルデータ型には、次の利点があります。
あいまいさのない正確な日付演算が保証される。
整数ベースの期間データからの、手動による:doc:`変換やキャスト</sql-reference/data-type-conversion>`の必要性が排除される。
時間の間隔を表すデータのストレージが最適化される。
期間データのクエリ実行が最適化される。
Databricks、Oracle、Teradataなどのサードパーティデータベースからのデータ移行が簡素化される。
ANSI標準に完全に準拠できる。
インターバルデータ型の構文¶
インターバルデータ型を指定するには、次の構文を使用します。
条件:
プロパティ:
:samp:`{precision}`は、許可される合計桁数です。精度は``1``から``9``の範囲になります。
デフォルト:
9:samp:`{fractional_seconds_precision}`は、1秒未満の小数点以下の桁数を指します。時間精度は``0``(秒)から``9``(ナノ秒)の範囲になります。
デフォルト:
9
インターバルデータ型を指定する場合は、この構文を使用します。例えば、次のテーブルにはINTERVAL YEAR TO MONTH型の``duration``列があります。
間隔値の表現¶
間隔値を表すには、インターバルリテラルまたはインターバル形式を使用します。
インターバルリテラル¶
インターバルリテラルとは、文字列リテラルで期間を指定する式です。次の構文を使用して、インターバルリテラルを指定します。
条件:
インターバル形式¶
特定の形式の文字列リテラルは、間隔値を表すことができます。
年と月の値を指定するには、次の形式を使用します。
条件:
sign`は、正(:code:`+)または負(-)の期間を指定する必須の記号です。デフォルト:
+。:samp:`{Y}`は年数です。許可される桁数(精度)は、値のデータ型によって異なります。
日、時間、秒、小数秒の値を指定するには、次の形式を使用します。
条件:
sign`は、正(:code:`+)または負(-)の期間を指定する必須の記号です。デフォルト:
+。:samp:`{D}`は日数です。許可される桁数(精度)は、値のデータ型によって異なります。
次の型の値では、:samp:`{D}`を省略します。
INTERVAL HOUR
INTERVAL HOUR TO MINUTE
INTERVAL HOUR TO SECOND
INTERVAL MINUTE
INTERVAL MINUTE TO SECOND
INTERVAL SECOND
:samp:`{HH24}`は、``00``から``23``までの時間数を表す2桁の数字です。
次の型の値では、:samp:`{HH24}`を省略します。
INTERVAL DAY
INTERVAL MINUTE
INTERVAL MINUTE TO SECOND
INTERVAL SECOND
:samp:`{MI}`は、``00``から``59``までの分数を表す2桁の数字です。
次の型の値では、:samp:`{MI}`を省略します。
INTERVAL DAY TO HOUR
INTERVAL DAY
INTERVAL HOUR
INTERVAL SECOND
:samp:`{SS}`は、``00``から``59``までの秒数を表す2桁の数字です。
次の型の値では、:samp:`{SS}`を省略します。
INTERVAL DAY
INTERVAL DAY TO HOUR
INTERVAL DAY TO MINUTE
INTERVAL HOUR
INTERVAL HOUR TO MINUTE
INTERVAL MINUTE
:samp:`{F}`は、秒を含むデータ型における小数秒の桁数です。許可される桁数(精度)は、値のデータ型によって異なります。
インターバル形式の文字列リテラルには、次の使用上の注意が適用されます。
文字列リテラル表現は、CASTまたはTO_CHAR関数を使用して間隔を明示的にテキスト文字列へキャストする場合に適用されます。
フィールドの先頭のゼロは精度を指定します。
間隔値の例¶
次のテーブルは、さまざまな間隔値を表す方法を示しています。テーブルに示す値は、間隔値に関する次のルールに従います。
正の値の場合、プラス記号:code:`+`はインターバルリテラル値ではオプションですが、インターバル形式の値では必須です。
インターバルリテラル値では、括弧内の値で精度(許可される桁数)を指定します。例えば、``YEAR(3)``は、年に対して3桁の使用を許可することを指定するものです。
インターバル形式の値では、主フィールド(先頭のフィールド)には先頭のゼロが含まれません。下位フィールドでは固定桁数を使用します。例えば、``+1-08``のようなYEAR TO MONTH値の場合、年フィールドは先頭のゼロを持たず、月フィールドは2桁で表記されます。
期間 |
型 |
インターバルリテラル値 |
インターバル形式値 |
|---|---|---|---|
プラス5年 |
INTERVAL YEAR |
|
|
プラス1年8か月 |
INTERVAL YEAR TO MONTH |
|
|
マイナス5か月 |
INTERVAL MONTH |
|
|
プラス14か月 |
INTERVAL MONTH |
|
|
マイナス44年11か月 |
INTERVAL YEAR TO MONTH |
|
|
プラス11日10時間9分 |
INTERVAL DAY TO MINUTE |
|
|
プラス2日23時間8分23秒275ミリ秒 |
INTERVAL DAY TO SECOND |
|
|
プラス4秒300ミリ秒 |
INTERVAL SECOND |
|
|
日付と時刻の値を含む操作¶
次のテーブルは、間隔値を含む有効な算術演算の結果のデータ型を示しています。
最初のオペランド |
演算子 |
2番目のオペランド |
結果の型 |
|---|---|---|---|
タイムスタンプ |
|
タイムスタンプ |
インターバルデータ型 |
日付またはタイムスタンプ |
|
間隔 |
DATE、 DATETIME、 TIMESTAMP_LTZ、 TIMESTAMP_NTZ、または TIMESTAMP_TZ |
日付またはタイムスタンプ |
|
間隔 |
DATE、 DATETIME、 TIMESTAMP_LTZ、 TIMESTAMP_NTZ、または TIMESTAMP_TZ |
間隔 |
|
日付またはタイムスタンプ |
DATE、 DATETIME、 TIMESTAMP_LTZ、 TIMESTAMP_NTZ、または TIMESTAMP_TZ |
数値 |
|
間隔 |
インターバルデータ型 |
間隔 |
|
数値 |
インターバルデータ型 |
間隔 |
|
数値 |
インターバルデータ型 |
間隔 |
|
間隔 |
インターバルデータ型 |
間隔 |
|
間隔 |
インターバルデータ型 |
2つの間隔値を含む操作の場合、値は両方とも年月間隔値か、両方とも日時間隔値でなければなりません。年月間隔値と日時間隔値を混在させる操作はサポートされていません。操作に2つの年月間隔値が含まれる場合、結果の型は年月間隔型になります。操作に2つの日時間隔値が含まれる場合、結果の型は日時間隔型になります。
間隔値を引数として受け取る関数¶
次の関数は間隔値を引数として受け取ります。
インターバルデータ型の例¶
次の例は、インターバルデータ型の使用方法を示しています。
インターバルデータを使用して算術演算を実行する¶
次の例では、インターバルデータを使用して算術演算を実行します。
日付に1年と1か月を追加します。
日付から1年と1か月を減算します。
タイムスタンプに期間を追加します。
次の例では、:doc:`/sql-reference/functions/system_typeof`関数を使用して、クエリが2つのタイムスタンプ値を減算したときにINTERVAL DAY TO SECOND値が返されることを示します。
クエリの結果をインターバル形式で表示するには、式をINTERVAL DAY(2) TO SECOND(2)データ型にキャストして精度を指定し、次にVARCHARへキャストします。
年月インターバルデータの挿入とクエリ¶
INTERVAL YEAR TO MONTH列で募集中のポジションの候補者を追跡するテーブルを作成し、データを挿入します。
`duration_of_experience``列をデータ型にキャストせずにテーブルをクエリすると、出力には各行の合計月数として列の値が表示されます。
テーブルをクエリして``duration_of_experience``列をVARCHARデータ型にキャストすると、出力には列の値がインターバル形式で表示されます。
日時インターバルデータを挿入しクエリを実行する¶
INTERVAL HOUR TO SECOND列でさまざまなソフトウェア機能のタイムアウト期間を指定するテーブルを作成し、データを挿入します。
テーブルをクエリし、``timeout_duration``列をVARCHARデータ型にキャストします。
テーブルへインターバルデータをコピーし、テーブルのクエリを実行する¶
次の手順を実行して、インターバルデータを含むファイルをステージングし、ファイルをテーブルにコピーします。
ファイルシステム上のファイルに、次の内容をコピーします。
この例では、ファイルが``/examples/intervals/``ディレクトリ内の``interval_values.csv``という名前であることを前提としています。
ステージを作成します。
内部ステージングの場所で、ファイルをステージングします。
データのテーブルを作成します。
作成したテーブルにステージングされたファイルをロードするには、:doc:`/sql-reference/sql/copy-into-table`コマンドを使用します。
ロードされたデータを表示するには、テーブルをクエリし、VARCHAR型にキャストしてロードされたデータを表示します。
インターバルデータ型の制限¶
インターバルデータ型には、次の制限が適用されます。
年月間隔値は、日時間隔値と組み合わせたり比較したりできません。
:ref:`インターバル定数<label-interval_constants>`とインターバルデータ型の値は、組み合わせたり比較したりできません。
インターバル定数は、インターバルデータ型を持つ列に挿入できません。
:ref:`label-data_type_variant`値に間隔値を含めることはできません。
:doc:`構造化データ型</sql-reference/data-types-structured>`の値に間隔値を含めることはできません。
間隔式は、:doc:`ユーザー定義関数(UDFs)</developer-guide/udf/udf-overview>`や:doc:`Snowflakeスクリプト</developer-guide/snowflake-scripting/index>`で使用できません。
次の型のテーブルには間隔列を含めることができません。
間隔列に対するクエリは、:doc:`/user-guide/search-optimization-service`の恩恵を受けられません。
TIME¶
Snowflakeは、時刻を HH:MI:SS の形式で保存するための単一の TIME データ型をサポートしています。
TIME は、小数秒のオプションの精度パラメーター(例: TIME(3))をサポートします。時間精度の範囲は、0(秒)から9(ナノ秒)までです。デフォルトの精度は9です。
すべての TIME 値は、 00:00:00 ~ 23:59:59.999999999 の間でなければなりません。TIME は「wallclock」時間を内部的に保存し、 TIME 値に対するすべての操作はタイムゾーンを考慮せずに実行されます。
TIMESTAMP_LTZ , TIMESTAMP_NTZ , TIMESTAMP_TZ¶
Snowflakeは、3種類のタイムスタンプをサポートしています。
- TIMESTAMP_LTZ:
TIMESTAMP_LTZ は、 UTC の値を指定された精度で内部に保存します。ただし、すべての操作は、 TIMEZONE セッションパラメーターによって制御される現在のセッションのタイムゾーンで実行されます。
次のものは、 TIMESTAMP_LTZ と同義です。
TIMESTAMPLTZ
TIMESTAMP WITH LOCAL TIME ZONE
- TIMESTAMP_NTZ:
TIMESTAMP_NTZ は、「wallclock」時間を指定された精度で内部に保存します。すべての操作は、タイムゾーンを考慮せずに実行されます。
出力形式にタイムゾーンが含まれる場合、 UTC インジケーター(
Z)が表示されます。TIMESTAMP_NTZ は、 TIMESTAMP のデフォルトです。
次のものは、 TIMESTAMP_NTZ と同義です。
TIMESTAMPNTZ
TIMESTAMP WITHOUT TIME ZONE
DATETIME
- TIMESTAMP_TZ:
TIMESTAMP_TZ は、 UTC の値と、関連する*タイムゾーンオフセット*を内部的に保存します。タイムゾーンが提供されない場合は、セッションタイムゾーンオフセットが使用されます。すべての操作は、各レコードに固有のタイムゾーンオフセットで実行されます。
次のものは、 TIMESTAMP_TZ と同義です。
TIMESTAMPTZ
TIMESTAMP WITH TIME ZONE
TIMESTAMP_TZ 値は、 UTC の時間に基づいて比較されます。たとえば、次の異なるタイムゾーンの異なる時間の比較では、2つの値の UTC 時間が等しいため、 TRUE が返されます。
注意
TIMESTAMP_TZ では、現在特定の値の作成時に、実際の タイムゾーン ではなく、特定のタイムゾーンの オフセット のみが保存されます。これは、 UTC で使用されない夏時間を扱う際に注意することが特に重要です。
たとえば、 TIMEZONE パラメーターを "America/Los_Angeles" に設定して、特定の年の1月に値を TIMESTAMP_TZ に変換すると、タイムゾーンオフセット -0800 が保存されます。後で値に6か月が追加されると、7月にロサンゼルスのオフセットが -0700 であっても、 -0800 オフセットが保持されます。これは、値が作成された後、実際のタイムゾーン情報("America/Los_Angeles")が利用できなくなるためです。次のコードサンプルは、この動作を示しています。
TIMESTAMP¶
Snowflake内の TIMESTAMP は、 TIMESTAMP_* バリエーションの1つに関連付けられたユーザー指定のエイリアスです。TIMESTAMP が使用されるすべての操作では、関連する TIMESTAMP_* バリエーションが自動的に使用されます。TIMESTAMP データ型はテーブルに保存されません。
TIMESTAMP に関連付けられている TIMESTAMP_* バリエーションは、 TIMESTAMP_TYPE_MAPPING セッションパラメーターで指定されます。デフォルトは TIMESTAMP_NTZ です。
すべてのタイムスタンプのバリエーションと TIMESTAMP エイリアスは、小数秒のオプションの精度パラメーターをサポートします(例: TIMESTAMP(3))。タイムスタンプの精度は、0(秒)から9(ナノ秒)の範囲です。デフォルトの精度は9です。
タイムスタンプの例¶
これらの例では、異なるタイムスタンプを使ってテーブルを作成しています。
まず、 TIMESTAMP 列(TIMESTAMP_NTZ にマップされる)を持つテーブルを作成します。
次に、 TIMESTAMP バリエーション(TIMESTAMP_LTZ)のいずれかを明示的に使用します。
異なるタイムゾーンで TIMESTAMP_LTZ を使用します。
このクエリでは、1月2日のロサンゼルスの時刻は08:00(UTC では16:00)です。
次に、タイムゾーンが異なると時間が変わることに注意します。
テーブルを作成して TIMESTAMP_NTZ を使用します。
異なるタイムゾーンの時刻は、どちらも同じ「壁時計」の時刻に変換されることに注意してください。
次に、セッションのタイムゾーンを変更しても、結果には影響しないことに注意してください。
テーブルを作成して TIMESTAMP_TZ を使用します。
なお、1月1日の記録はセッションのタイムゾーンを継承し、 America/Los_Angeles は数値のタイムゾーンオフセットに変換されました。
次に、セッションのタイムゾーンを変更しても、結果には影響しないことに注意してください。
サポートされているカレンダー¶
Snowflakeは、すべての日付とタイムスタンプにグレゴリオ暦を使用します。グレゴリオ暦は1582年に始まりますが、Snowflakeはユリウス暦と一致するように1582年以前の日付(または1582年以前の日付を含む計算)を 調整しない ため、前の年を認識します。UUUU 形式要素は負の年をサポートしています。
日付と時刻の形式¶
これらのデータ型はすべて、最も妥当であり曖昧でない日付、時刻、または日付と時刻の形式を受け入れます。自動的に形式を検出するように構成されている 場合に、Snowflakeが認識する形式については、 AUTO 検出でサポートされている形式 をご参照ください。
日付と時刻の形式を手動で指定する こともできます。形式を指定するときは、次のテーブルに示す大文字と小文字を区別しない要素を使用できます。
形式要素 |
説明 |
|---|---|
|
4桁の [1] 年。 |
|
2桁の [1] 年で、TWO_DIGIT_CENTURY_START セッションパラメーターで制御されます。たとえば |
|
先頭にゼロがない1桁または2桁 [2] の年。:ref:`label-TWO_DIGIT_CENTURY_START`セッションパラメーターによって制御されます。たとえば、パラメーターを:code:`1990`に設定すると、:code:`2005`と:code:`1991`の値は、それぞれ:code:`5`と:code:`91`としてシリアル化されます。 |
|
2桁の [1] 月(:code:`01`= Januaryなど)。 |
|
先頭にゼロがない1桁または2桁の [2] 月( |
|
月の略称 [3]。 |
|
完全な月名 [3]。 |
|
月の2桁の [1] の日( |
|
先頭にゼロがない1桁または2桁の [2] 月の日付( |
|
曜日の略称。 |
|
時間を表す2桁の [1] 数字( |
|
時間を表す2桁の [1] 数字( |
|
時間を表す先頭にゼロがない1桁または2桁の [2] 数字( |
|
時間を表す先頭にゼロがない1桁または2桁の [2] 数字( |
|
午前( |
|
午前( |
|
:code:`HH24`の同義語。 |
|
:code:`H24`の同義語。 |
|
分を表す2桁の [1] 数字( |
|
分を表す先頭にゼロがない1桁または2桁の [2] 数字( |
|
秒を表す2桁の [1] 数字( |
|
秒を表す先頭にゼロがない1桁または2桁の [2] 数字( |
|
|
|
タイムゾーンの2桁の [1] 時間と分、UTC との時差。記号として |
|
ISO 形式 の4桁の年。これは BCE 年の場合は負になります。 |
[1] 桁数は、値をテキストにシリアル化するときに生成される出力を説明します。テキストを解析する場合、Snowflakeは指定された桁数まで受け入れます。たとえば、日を表す数字は1桁または2桁にすることができます。
:sub:`[2] 桁数は、値をテキストにシリアル化するときに生成される出力を説明します。解析はサポートされていません。解析が必要な場合は、先頭にゼロを含む同等の形式を使用してください。これらの形式要素はBCRバンドル2026_03`で有効になります。
:sub:`[3] MON 形式要素の場合、値をテキストにシリアル化するときに生成される出力は、短縮された月名です。MMMM 形式要素の場合、値をテキストにシリアル化するときに生成される出力は、完全な月名です。テキストを解析するとき、Snowflakeは MON と MMMM 両方について3桁の略称または完全な月名を受け入れます。たとえば、「January」または「Jan」、「February」または「Feb」などが、テキストを解析するときに受け入れられます。 `
注釈
日付のみの形式を使用する場合、関連付けられた時刻はその日の午前0時と見なされます。
二重引用符で囲まれた形式または上記の要素以外の形式のものは、解釈されることなく解析/フォーマットされます。Snowflakeは、リテラル文字がリテラルとして扱われるように、常に二重引用符で囲むこと(たとえば、
"T"、"EST"、"Z")をお勧めします。有効な範囲、桁数、ベストプラクティスの詳細については、 日付、時刻、およびタイムスタンプ形式の使用に関する追加情報 をご参照ください。
日付と時刻形式の使用例¶
次の例では、「 FF 」を使用して、出力の小数秒フィールドに9桁を含める必要があることを示しています。
日付と時刻の定数¶
定数 (別名 リテラル)は、固定データ値を指します。Snowflakeは、文字列定数を使用した固定の日付、時刻、またはタイムスタンプ値の指定をサポートしています。文字列定数は常に区切り文字で囲む必要があります。Snowflakeは、単一引用符を使用した文字列定数区切りをサポートしています。
例:
文字列は、次のパラメーターで設定されたデータ型の入力形式に基づいて、 DATE、 TIME、または TIMESTAMP の値として解析されます。
- DATE:
- TIME:
- TIMESTAMP:
例:テーブルの列に特定の日付を挿入します。
間隔定数¶
間隔定数を使用して、日付、時刻、またはタイムスタンプに期間を追加または削除できます。間隔定数は、次の構文を持つ INTERVAL キーワードを使用して実装されます。
すべての文字列定数と同様に、Snowflakeでは間隔定数を区切るために一重引用符が必要です。
注釈
間隔定数は日付と時刻の演算をサポートしますが、列型としての間隔ストレージはサポートしません。列に間隔値を格納するには、:ref:`インターバルデータ型<label-datatypes_interval_variations>`を使用します。
INTERVALキーワードは、1つ以上の整数、およびオプションで1つ以上の日付または時刻の要素をサポートします。例:
INTERVAL '1 year'は、1年を表します。INTERVAL '4 years, 5 months, 3 hours'は4年5カ月と3時間を表しています。
日付または時刻の部分が指定されていない場合、間隔は秒を表します(例: INTERVAL '2' は INTERVAL '2 seconds' と同一)。これは、日付演算を実行するためのデフォルトの時間単位とは異なります。詳細については、 日付の単純な演算 をご参照ください。
サポートされている日付と時刻部分のリストについては、このトピック内の サポートされている間隔の日付と時刻部分 をご参照ください。
注釈
間隔の増分の順序は重要です。増分は、リストされている順序で加算または減算されます。例:
INTERVAL '1 year, 1 day'最初に1年、次に1日を加算/減算します。INTERVAL '1 day, 1 year'最初に1日、次に1年を加算/減算します。
これは、うるう年などのカレンダーイベントの計算に影響を与える可能性があります。
INTERVAL は、データ型ではありません(テーブル列をデータ型 INTERVAL として定義することはできません)。間隔は、日付、時刻、タイムスタンプの計算でのみ使用できます。
SQL 変数 で区間を使うことはできません。例えば、次のクエリはエラーを返します。
サポートされている間隔の日付と時刻部分¶
INTERVAL キーワードは、次の日付と時刻部分を引数としてサポートします(大文字と小文字の区別なし)。
日付または時刻部分 |
略語/バリエーション |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
間隔の例¶
特定の日付に年間隔を追加します。
特定の時間に3時間18分のインターバルを追加します。
CURRENT_TIMESTAMP 関数の出力に複雑な間隔を追加します。
以下はサンプル出力です。現在のタイムスタンプが異なる場合は出力が異なります。
特定の日付に、略称の日付/時刻の部分表記を使用した複雑な間隔を追加します。
従業員情報のテーブルをクエリし、過去2年と3か月以内に雇用された従業員の名前を返します。
t1 という名前のテーブルから ts という名前の TIMESTAMP 列をフィルターし、各戻り値に4秒を追加します。
日付の単純な演算¶
日付、時刻、タイムスタンプの加減算に区間定数を使うことに加えて、 DATE 値に { + | - } integer の形式で日数を加減算することもできます。ここで、 integer は加減算する日数を指定します。
注釈
TIME と TIMESTAMP 値はまだ単純な演算をサポートしていません。
日付演算の例¶
指定した日付に1日を追加します。
特定の日付から4日引きます。
employees という名前のテーブルをクエリし、365日以上雇用された退職者の名前を返します。
SELECT name FROM employees WHERE end_date > start_date + 365;