WEEKS_BETWEEN スカラー関数
WEEKS_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) が使用されます。
この関数の結果は INTEGER です。引数のいずれかが NULL になる可能性がある場合、結果も NULL になる可能性があります。引数が NULL の場合、結果は NULL 値になります。
例
- 2012-03-06 と 2012-02-28 の間の週数をホスト変数 NUM_WEEKS に設定します。
2012 年には 2 月 29 日があるので、引数間の日数は 7 日になり、ホスト変数 NUM_WEEKS は 1 に設定されます。SET :NUM_WEEKS = WEEKS_BETWEEN(DATE '2012-03-06', DATE '2012-02-28') - 2012-03-05 と 2012-02-28 の間の週数をホスト変数 NUM_WEEKS に設定します。
引数間の日数が 6 日なので、ホスト変数 NUM_WEEKS は 0 に設定されます。SET :NUM_WEEKS = WEEKS_BETWEEN(DATE '2012-03-05', DATE '2012-02-28') - 2013-09-21-23.59.59 と 2013-09-01-00.00.00 の間の週数をホスト変数 NUM_WEEKS に設定します。
引数間の時間が 3 週間に 1 秒足りないので、ホスト変数 NUM_WEEKS は 2 に設定されます。結果が正になるのは、1 つ目の引数のほうが 2 つ目の引数より後の時間だからです。SET :NUM_WEEKS = WEEKS_BETWEEN(TIMESTAMP '2013-09-21-23.59.59', TIMESTAMP '2013-09-01-00.00.00') - 2013-09-01-00.00.00 と 2013-09-21-23.59.59 の間の週数をホスト変数 NUM_WEEKS に設定します。
引数間の時間が 3 週間に 1 秒足りないので、ホスト変数 NUM_WEEKS は -2 に設定されます。結果が負になるのは、1 つ目の引数のほうが 2 つ目の引数より前の時間だからです。SET :NUM_WEEKS = WEEKS_BETWEEN(TIMESTAMP '2013-09-01-00.00.00', TIMESTAMP '2013-09-21-23.59.59')
