HOURS_BETWEEN スカラー関数

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

Read syntax diagramSkip visual syntax diagramHOURS_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 より前である場合、結果は負になります。 NPS 互換モードでは、この関数は常に正数を返します。 expression1 または expression2 に時刻情報が含まれている場合は、その情報も時間数の計算に使用されます。 expression1 または expression2 に時刻情報が含まれていない場合は、時刻情報が欠落している引数の時刻として午前 0 時 (00.00.00) が使用されます。

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

  1. ホスト変数 NUM_HOURS に、2012-03-01-01.00.00 と 2012-02-28-00.00.00 の間の時間数を設定します。
       SET :NUM_HOURS = HOURS_BETWEEN(TIMESTAMP '2012-03-01-01.00.00', 
                                      TIMESTAMP '2012-02-28-00.00.00')
    2012 年 2 月 29 日が追加の 1 日として含まれるため、ホスト変数 NUM_HOURS は 49 に設定されます。
  2. ホスト変数 NUM_HOURS に、2013-09-11-23.59.59 と 2013-09-01-00.00.00 の間の時間数を設定します。
       SET :NUM_HOURS = HOURS_BETWEEN(TIMESTAMP '2013-09-11-23.59.59', 
                                      TIMESTAMP '2013-09-01-00.00.00')
    引数の間は 264 時間に 1 秒足りないため、ホスト変数 NUM_HOURS は 263 に設定されます。 結果が正になるのは、1 つ目の引数のほうが 2 つ目の引数より後の時間だからです。
  3. ホスト変数 NUM_HOURS に、2013-09-01-00.00.00 と 2013-09-11-23.59.59 の間の時間数を設定します。
       SET :NUM_HOURS = HOURS_BETWEEN(TIMESTAMP '2013-09-01-00.00.00', 
                                      TIMESTAMP '2013-09-11-23.59.59')
    引数の間は 264 時間に 1 秒足りないため、ホスト変数 NUM_HOURS は -263 に設定されます。 結果が負になるのは、1 つ目の引数のほうが 2 つ目の引数より前の時間だからです。