日時の演算および比較
DATE、TIME および TIMESTAMP の各値は、 同じ型の別の値と比較することができます。 比較は、日時順です。 日時値は、増加、減少、および減算も可能です。
データ・ストアが DB2 の場合、DB2 の DATE、TIME、および TIMESTAMP 型のストリング表記も使用可能です。
フォーマット | 日付フォーマット | 日付の例 | 時刻フォーマット | 時刻の例 |
---|---|---|---|---|
ISO | yyyy-mm-dd | 1987-02-24 1987-2-24 | hh.mm.ss | 13.50.00 13.50 |
mm/dd/yyyy | 2/24/1987 | hh:mm AM or PM | 1:50 pm 02:10 AM | |
EUR | dd.mm.yyyy | 24.02.1987 24.2.1987 | hh.mm.ss | 13.50.00 13.55 |
JIS | yyyy-mm-dd | 1987-02-24 | hh:mm:ss | 13:50 13:50:05 |
例 1: 日時の算術比較
e.hiredate > '1990-02-24'
'1990-02-24-13.50.00.000000' または
'1990-02-24-13.50.00'
データ・ストアが DB2 の場合は、DB2 の 10 進数期間を式および比較に使用することができます。 日付の期間とは、2 つの日付の間の差を YYYYMMDD のフォーマットで表す 10 進 (8,0) 数です。 時刻の期間とは、2 つの時刻値の間の差を HHMMSS で表す 10 進 (6,0) 数です。 タイム・スタンプ期間とは、2 つのタイム・スタンプ値の間の差を YYYYMMDDHHMMSS.ZZZZZZ で表す 10 進 (20,6) 数です (ZZZZZZ はマイクロ秒数であり、10 進小数点の後に示されます)。
2 つの日付値 (または時刻値、またはタイム・スタンプ値) を減算することにより、 期間を生じさせることができます。 第 2 オペランドが最初のオペランドより大きい場合は、期間は負の 10 進数です。 日付値に期間を加算または減算することにより、新規の日時値を生じさせることができます。
例 2: 日付の算術比較
DATE('3/15/2000') - '12/31/1999' の結果は 10 進数の 215 となり、 期間は 0 年 2 カ月 15 日です。
期間は、実際には 10 進数で、算術式および算術比較で使用することができます。
( DATE('3/15/2000') - '12/31/1999' ) + 14 > 215 の結果は、TRUE となります。
DATE('12/31/1999') + DECIMAL(215,8,0) の結果は、日付値 3/15/2000 となります。
TIME('11:02:26') - '00:32:56' の結果は、10 進数の 102930 となり、 これは 10 時間 29 分 30 秒という期間を表します。
TIME('00:32:56') + DECIMAL(102930,6,0) の結果は、時刻値 11:02:26 となります。
TIME('00:00:59') + DECIMAL(240000,6,0) の結果は、時刻値 00:00:59 となります。
e.hiredate + DECIMAL(500,8,0) > '2000-10-01' は、雇用日プラス 5 カ月と日付 10/01/2000 との比較を意味しています。