IBM® Informix® 12.10

日時 (DATETIME) 型値と時間隔 (INTERVAL) 型値の操作

時間隔 (INTERVAL) 型値は、日時 (DATETIME) 型値から減算、または加算できます。いずれの場合も、結果は日時 (DATETIME) 型値になります。時間隔 (INTERVAL) 型値を日時 (DATETIME) 型値に加算する場合、値の順序は問題にはなりません。ただし、減算の場合には、日時 (DATETIME) 型値が最初にくる必要があります。正の時間隔 (INTERVAL) 型値の加算や減算は、日時 (DATETIME) 型の結果の時間を進めるか戻す操作です。次の例に示す式は、日付を 3 年 5 か月進めます。
DATETIME (2000-8-1) YEAR TO DAY
   + INTERVAL (3-5) YEAR TO MONTH

Result: DATETIME (2004-01-01) YEAR TO DAY
重要: 加算と減算のロジックに注意してください。1 か月は月によって 28 日、29 日、30 日、31 日の場合があり、1 年は 365 日と 366 日の場合があります。

オペランドが同じ精度ではない場合、通常は、データベース サーバが自動的に計算を調整します。ただし、一方の値の精度を明示的に調整し、計算する必要がある場合もあります。加算または減算している時間隔 (INTERVAL) 型値が日時 (DATETIME) 型値に含まれないフィールドを持っている場合、EXTEND 関数を使用して日時 (DATETIME) 型値の精度を拡張する必要があります (EXTEND 関数の詳細については、「IBM Informix SQL ガイド: シンタックス」の式セグメントの説明を参照してください)。

例えば、前の例における YEAR TO DAY フィールド修飾子を持つ日時 (DATETIME) 型値から、INTERVAL MINUTE TO MINUTE 値を減算できません。ただし、次の例に示すように EXTEND 関数を使用すると、この計算を実行できます。
EXTEND (DATETIME (2008-8-1) YEAR TO DAY, YEAR TO MINUTE)
   - INTERVAL (720) MINUTE(3) TO MINUTE

Result: DATETIME (2008-07-31 12:00) YEAR TO MINUTE

EXTEND 関数により、日時 (DATETIME) 型の精度を、YEAR TO DAY から YEAR TO MINUTE に拡張できます。これにより、データベース サーバは計算が可能になり、拡張精度 YEAR TO MINUTE の結果が得られます。


フィードバックの送信 | 例の共有 | トラブルシューティング

PDF を見つけるには、Publications for the IBM Informix 12.10 family of products を参照してください。
リリース ノート、ドキュメント ノート、マシン ノートについては、リリース ノート・ページを参照してください。
タイムスタンプ リリース日: 2013 年 3 月