SECONDS_BETWEEN スカラー関数

SECONDS_BETWEEN 関数は、指定された引数の間の秒数を戻します。

構文図を読む構文図をスキップするSECONDS_BETWEEN(expression1 ,expression2)

スキーマは 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 スカラー関数で使用できる有効なストリングでなければなりません。

expression1expression2 の間が 1 秒に満たない場合、結果はゼロになります。 expression1expression2 より後である場合、結果は正になります。 expression1expression2 より前である場合、結果は負になります。 expression1 または expression2 に時刻情報が含まれている場合は、その情報も秒数の計算に使用されます。 expression1 または expression2 に時刻情報が含まれていない場合は、時刻情報が欠落している引数の時刻として午前 0 時 (00.00.00) が使用されます。

関数の結果は BIGINT です。引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。引数が NULL の場合、結果は NULL 値になります。

  1. ホスト変数 NUM_SECONDS に、2012-03-01-01.00.00 と 2012-02-28-00.00.00 の間の秒数を設定します。
       SET :NUM_SECONDS = SECONDS_BETWEEN(TIMESTAMP '2012-03-01-01.00.00', 
                                          TIMESTAMP '2012-02-28-00.00.00')
    ホスト変数 NUM_SECONDS は 176400 に設定されます。この秒数のうちの 86400 は、2012 年 2 月 29 日の分です。
  2. ホスト変数 NUM_SECONDS に、2013-09-11-23.59.59.999999 と 2013-09-01-00.00.00.000000 の間の秒数を設定します。
       SET :NUM_SECONDS = SECONDS_BETWEEN(TIMESTAMP '2013-09-11-23.59.59.999999', 
                                          TIMESTAMP '2013-09-01-00.00.00.000000')
    引数の間は 950400 秒に 0.000001 秒足りないため、ホスト変数 NUM_SECONDS は 950399 に設定されます。 結果が正になるのは、1 つ目の引数のほうが 2 つ目の引数より後の時間だからです。
  3. ホスト変数 NUM_SECONDS に、2013-09-01-00.00.00.000000 と 2013-09-11-23.59.59.999999 の間の秒数を設定します。
       SET :NUM_SECONDS = SECONDS_BETWEEN(TIMESTAMP '2013-09-01-00.00.00.000000', 
                                          TIMESTAMP '2013-09-11-23.59.59.999999')
    引数の間は 950400 秒に 0.000001 秒足りないため、ホスト変数 NUM_SECONDS は -950399 に設定されます。 結果が負になるのは、1 つ目の引数のほうが 2 つ目の引数より前の時間だからです。