日時値での数値演算子の使用

以下の例は、数値演算子を使用して日時値を操作するためにコード化できる ESQL を示しています。

日時値にインターバルを加算する
最も簡単に行える操作は、日時値に対するインターバルの加算または減算です。 例えば、次のような式を書くことができます。
DATE '2000-03-29' + INTERVAL '1' MONTH
TIMESTAMP '1999-12-31 23:59:59' + INTERVAL '1' SECOND

以下の例は、退職年齢を生年月日に加算して、退職日付を算出する方法を示しています。

DECLARE retAge CHARACTER '65';
DECLARE birthDate DATE DATE '1953-06-01';

SET OutputRoot.XML.Test.retirementDate = birthDate + CAST(retAge AS INTERVAL YEAR);

上記の例で DATE という語は意図的に繰り返されています。 最初に出現する DATE は、宣言された変数 birthDate のデータ型を指定します。 2 番目の出現は、その同じ変数を引用符で囲まれた固定文字ストリングによって DATE として初期化します。

2 つのインターバルの加算または減算
加算または減算を使用して、2 つのインターバル値を結合することができます。 この 2 つのインターバル値は、互換タイプのものでなければなりません。 以下の例に示されているような、日-秒のインターバルへの年-月のインターバルの加算は無効です。
INTERVAL '1-06' YEAR TO MONTH + INTERVAL '20' DAY

結果として得られるインターバルのインターバル修飾子は、2 つのオペランドのインターバルにあるすべてのフィールドを包含することができます。以下に例を示します。

INTERVAL '2 01' DAY TO HOUR + INTERVAL '123:59' MINUTE TO SECOND

この例では、日と秒の両方のフィールドが、少なくとも 1 つのオペランド値にあるため、ここでの結果のインターバルの修飾子は DAY TO SECOND になります。

2 つの日時値の減算
2 つの日時値を減算して、インターバルを戻すことができます。 戻される結果の精度を指示するには、インターバル修飾子を式の中に入れておく必要があります。 以下に例を示します。
(CURRENT_DATE - DATE '1776-07-04') DAY

この例では、1776 年 7 月 4 日以来の日数が戻されます。 一方、次の例を見てみます。

(CURRENT_TIME - TIME '00:00:00') MINUTE TO SECOND

この例では経過日数を分と秒で戻します。

インターバルのスケーリング
次のようにして、インターバル値を整数係数で乗算または除算することができます。
INTERVAL '2:30' MINUTE TO SECOND / 4
関連概念
メッセージ・フローの概要
ESQL 演算子
メッセージ・マッピングの概要
関連タスク
メッセージ・フローの作成
ESQL の開発
時間間隔の計算
関連資料
組み込みノード
ESQL 参照
ESQL INTERVAL データ・タイプ
ESQL の単純な比較演算子
ESQL 論理演算子
ESQL 数値演算子
ESQL 演算子優先順位の規則
CAST 関数
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:42:52

ac16750_