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