修飾子構文を使用しない間隔リテラルの例 - Amazon Redshift

修飾子構文を使用しない間隔リテラルの例

注記

以下の例は、YEAR TO MONTH または DAY TO SECOND 修飾子を使用しない間隔リテラルを示しています。修飾子を使用した間隔リテラルの推奨例については、「間隔のデータ型とリテラル」を参照してください。

12 hours または 6 months など、特定の期間を識別するには、間隔リテラルを使用します。これらの間隔リテラルは、日時式を必要とする条件および計算の中で使用できます。

間隔リテラルは、INTERVAL キーワードに数量およびサポートされている日付パートを組み合わせて表現します。例えば、INTERVAL '7 days' または INTERVAL '59 minutes' のようになります。複数の数量および単位をつなぎ合わせることで、より正確な間隔を作成できます (例えば、INTERVAL '7 days, 3 hours, 59 minutes')。各単位の省略形および複数形もサポートされています。例えば、5 s5 second、および 5 seconds は等価な間隔です。

日付部分を指定しない場合、間隔値は秒数を示します。数量値は小数として指定できます (例えば、0.5 days)。

次の例に、さまざまな間隔値を使用した一連の計算を示します。

以下は、指定された日付に 1 秒を追加します。

select caldate + interval '1 second' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 00:00:01 (1 row)

以下は、指定された日付に 1 分を追加します。

select caldate + interval '1 minute' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 00:01:00 (1 row)

以下では、指定された日付に 3 時間と 35 分を追加します。

select caldate + interval '3 hours, 35 minutes' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 03:35:00 (1 row)

以下は、指定された日付に 52 週を追加します。

select caldate + interval '52 weeks' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2009-12-30 00:00:00 (1 row)

以下では、指定された日付に 1 週、1 時間、1 分、および 1 秒を追加します。

select caldate + interval '1w, 1h, 1m, 1s' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2009-01-07 01:01:01 (1 row)

以下は、指定された日付に 12 時間 (半日) を追加します。

select caldate + interval '0.5 days' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 12:00:00 (1 row)

以下では、2023 年 2 月 15 日から 4 か月を引いて、結果が 2022 年 10 月 15 日になります。

select date '2023-02-15' - interval '4 months'; ?column? --------------------- 2022-10-15 00:00:00

以下では、2023 年 3 月 31 日から 4 か月を引いて、結果が 2022 年 11 月 30 日になります。計算では、1 か月の日数を考慮します。

select date '2023-03-31' - interval '4 months'; ?column? --------------------- 2022-11-30 00:00:00