SECONDS_BETWEEN スカラー関数
SECONDS_BETWEEN 関数は、指定された引数の間の秒数を戻します。
スキーマは SYSIBM です。
- expression1
- 2 つの日時値の間の秒数を計算するために使用する、1 つ目の日時値を指定する式。 式は DATE、TIMESTAMP、CHAR、 または VARCHAR データ・タイプの値を戻す必要があります。 Unicode データベースでは、 式は GRAPHIC または VARGRAPHIC のデータ・タイプにすることもできます。CHAR、VARCHAR、GRAPHIC、および VARGRAPHIC は、暗黙的キャストを介してサポートされます。expression1 が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプである場合は、TIMESTAMP スカラー関数で使用できる有効なストリングでなければなりません。
- expression2
- 2 つの日時値の間の秒数を計算するために使用する、2 つ目の日時値を指定する式。 式は DATE、TIMESTAMP、CHAR、 または VARCHAR データ・タイプの値を戻す必要があります。 Unicode データベースでは、 式は GRAPHIC または VARGRAPHIC のデータ・タイプにすることもできます。CHAR、VARCHAR、GRAPHIC、および VARGRAPHIC は、暗黙的キャストを介してサポートされます。expression2 が CHAR、VARCHAR、GRAPHIC、または VARGRAPHIC のデータ・タイプである場合は、TIMESTAMP スカラー関数で使用できる有効なストリングでなければなりません。
expression1 と expression2 の間が 1 秒に満たない場合、結果はゼロになります。 expression1 が expression2 より後である場合、結果は正になります。 expression1 が expression2 より前である場合、結果は負になります。 expression1 または expression2 に時刻情報が含まれている場合は、その情報も秒数の計算に使用されます。 expression1 または expression2 に時刻情報が含まれていない場合は、時刻情報が欠落している引数の時刻として午前 0 時 (00.00.00) が使用されます。
関数の結果は BIGINT です。引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。引数が NULL の場合、結果は NULL 値になります。
例
- ホスト変数 NUM_SECONDS に、2012-03-01-01.00.00 と 2012-02-28-00.00.00 の間の秒数を設定します。
ホスト変数 NUM_SECONDS は 176400 に設定されます。この秒数のうちの 86400 は、2012 年 2 月 29 日の分です。SET :NUM_SECONDS = SECONDS_BETWEEN(TIMESTAMP '2012-03-01-01.00.00', TIMESTAMP '2012-02-28-00.00.00') - ホスト変数 NUM_SECONDS に、2013-09-11-23.59.59.999999 と 2013-09-01-00.00.00.000000 の間の秒数を設定します。
引数の間は 950400 秒に 0.000001 秒足りないため、ホスト変数 NUM_SECONDS は 950399 に設定されます。 結果が正になるのは、1 つ目の引数のほうが 2 つ目の引数より後の時間だからです。SET :NUM_SECONDS = SECONDS_BETWEEN(TIMESTAMP '2013-09-11-23.59.59.999999', TIMESTAMP '2013-09-01-00.00.00.000000') - ホスト変数 NUM_SECONDS に、2013-09-01-00.00.00.000000 と 2013-09-11-23.59.59.999999 の間の秒数を設定します。
引数の間は 950400 秒に 0.000001 秒足りないため、ホスト変数 NUM_SECONDS は -950399 に設定されます。 結果が負になるのは、1 つ目の引数のほうが 2 つ目の引数より前の時間だからです。SET :NUM_SECONDS = SECONDS_BETWEEN(TIMESTAMP '2013-09-01-00.00.00.000000', TIMESTAMP '2013-09-11-23.59.59.999999')
