INTERVAL データ・タイプ値は、時間のインターバルを保持します。 以下に挙げる複数のサブタイプがあります。
上記のサブタイプはすべて時間のインターバルを記述するものであり、INTERVAL タイプの全演算が可能です。 例えば、タイプ DATE、TIME、または TIMESTAMP との間で加算や減算が可能です。
CAST 関数を使って、あるサブタイプから別のサブタイプへ変換できます。 ただし、例外として、年月または月数で記述したインターバルを、日、時間、分、秒で記述したインターバルに変換することはできません。
月によって日数が異なるので、月と日を分けることが必要です。 1 月と 1 日というインターバルは、分かりにくいものであり、日数だけを使用した同等のインターバルに変換することはできません。
インターバル・リテラルは、次の構文で定義します。
INTERVAL <interval string> <interval qualifier>
インターバル・ストリングとインターバル修飾子の形式は、下の表で定義されています。
インターバル修飾子 | インターバル・ストリング形式 | 例 |
---|---|---|
YEAR | '<year>' または '<sign> <year>' | '10' または '-10' |
YEAR TO MONTH | '<year>-<month>' または '<sign> <year>-<month>' | '2-06' または '- 2-06' |
MONTH | '<month>' または '<sign> <month>' | '18' または '-18' |
DAY | '<day>' または '<sign> <day>' | '30' または '-30' |
DAY TO HOUR | '<day> <hour>' または '<sign> <day> <hour>' | '1 02' または '-1 02' |
DAY TO MINUTE | '<day> <hour>:<minute>' または '<sign> <day> <hour>:<minute>' | '1 02:30' または '-1 02:30' |
DAY TO SECOND | '<day> <hour>:<minute>:<second>' または '<sign> <day> <hour>:<minute>:<second>' | '1 02:30:15' または '-1 02:30:15.333' |
HOUR | '<hour>' または '<sign> <hour>' | '24' または '-24' |
HOUR TO MINUTE | '<hour>:<minute>' または '<sign> <hour>:<minute>' | '1:30' または '-1:30' |
HOUR TO SECOND | '<hour>:<minute>:<second>' または '<sign> <hour>:<minute>:<second>' | '1:29:59' または '-1:29:59.333' |
MINUTE | '<minute>' または '<sign> <minute>' | '90' または '-90' |
MINUTE TO SECOND | '<minute>:<second>' または '<sign> <minute>:<second>' | '89:59' または '-89:59' |
SECOND | '<second>' または '<sign> <second>' | '15' または '-15.7' |
インターバルに年と月の両方の値を指定する場合は、2 つの値の間にハイフンを使用します。 この場合、月の値は [0, 11] の範囲内でなければなりません。 インターバルに月の値を指定して、年の値を指定しない場合は、月の値に制約はありません。
日を残りのインターバルから分離するには、スペースを使用します。
インターバルを HOUR、MINUTE、および SECOND の中から複数を用いて指定する場合は、コロンを使用して値を区切る必要があり、左端を除くすべてが、以下のように制限されます。
インターバルの左端の 最大値は +/- 2147483647 です。
次に、有効なインターバル値の例をいくつか示します。
次に、無効なインターバル値の例をいくつか示します。
日フィールドを指定したので、時フィールドは [0,23] に制約されます。
時フィールドを指定したので、分は [0,59] に制約されます。
インターバル・リテラルのいくつかの例を次に示します。
INTERVAL '1' HOUR INTERVAL '90' MINUTE INTERVAL '1-06' YEAR TO MONTH