ADD_HOURS スカラー関数
ADD_HOURS 関数は、最初の引数と指定された時間数を足したタイム・スタンプ値を戻します。
スキーマは SYSIBM です。
- expression
- 開始タイム・スタンプを指定する式。 式は TIMESTAMP、CHAR、 または VARCHAR データ・タイプの値を戻す必要があります。 Unicode データベースでは、 式は GRAPHIC または VARGRAPHIC のデータ・タイプにすることもできます。 CHAR、VARCHAR、GRAPHIC、および VARGRAPHIC は、暗黙的キャストを介してサポートされます。 式は、DATE の値を戻してはなりません (SQLSTATE 42815)。 expression が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプである場合は、TIMESTAMP スカラー関数で使用できる有効なストリングでなければなりません。
- 数値式 (numeric-expression)
- expression で指定した開始タイム・スタンプに加算する時間数を指定する式。 式は組み込み数値、CHAR、または VARCHAR データ・タイプの値を戻す必要があります。 Unicode データベースでは、 式は GRAPHIC または VARGRAPHIC のデータ・タイプにすることもできます。 CHAR、VARCHAR、GRAPHIC、および VARGRAPHIC は、暗黙的キャストを介してサポートされます。 INTEGER でない式は、関数の評価の前に INTEGER にキャストされます。 負の数値を使用することで、時間数を減算することができます。
この関数の結果は、expression がタイム・スタンプの場合は expression と同じ精度のタイム・スタンプになります。 そうでない場合には、結果は TIMESTAMP(12) になります。 引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。 引数のいずれかが NULL の場合、その結果は NULL 値です。
例
- 現行タイム・スタンプが 2007 年 1 月 31 日 01:02:03.123456 であるとします。 ホスト変数 ADD_HOUR に、現行タイム・スタンプに 1 時間を足した値を設定します。
ホスト変数 ADD_HOUR には、2007-01-31-02.02.03.123456 を表す値が設定されます。SET :ADD_HOUR = ADD_HOURS(CURRENT TIMESTAMP, 1) - TIMESTAMP が 1965 年 7 月 27 日 23:58:59 の値のホスト変数であるとします。 ホスト変数 ADD_HOUR に、このタイム・スタンプに 3 時間を足した値を設定します。
ホスト変数 ADD_HOUR には、このタイム・スタンプに 3 時間を足した 1965-07-28-02.58.59 を表す値が設定されます。SET :ADD_HOUR = ADD_HOURS(:TIMESTAMP,3) - ADD_HOURS 関数と日時算術計算のどちらを使用しても、同じ結果になります。 以下の例でこれを示します。
どちらの場合も、ホスト変数 TIMESTAMPHV には値 '2008-02-29-02.58.59' が設定されます。SET :TIMESTAMPHV = TIMESTAMP '2008-2-28-22.58.59' + 4 HOURS SET :TIMESTAMPHV = ADD_HOURS( TIMESTAMP '2008-2-28-22.58.59', 4)今度は、同じ例で 28 時間を加算します。
どちらの場合も、ホスト変数 TIMESTAMPHV には値 '2008-03-01-02.58.59' が設定されます。SET :TIMESTAMPHV = TIMESTAMP '2008-2-28-22.58.59' + 28 HOURS SET :TIMESTAMPHV = ADD_HOURS(TIMESTAMP '2008-2-28-22.58.59', 28) - TIMESTAMP が 1965 年 7 月 27 日 23:58:59 の値のホスト変数であるとします。 ホスト変数 ADD_HOUR に、このタイム・スタンプから 3 時間を引いた値を設定します。
ホスト変数 ADD_HOUR には、1965 年 7 月 27 日 23:58:59 から 3 時間を引いた 1965-07-27-20.58.59 を表す値が設定されます。SET :ADD_HOUR = ADD_HOURS(:TIMESTAMP,-3)
