NEXT_DAY

NEXT_DAY 関数は、expression の日付より 後の、string-expression で指定された曜日の最初の日付またはタイム・スタンプ値を戻します。

構文図を読む構文図をスキップする
>>-NEXT_DAY--(--expression--,--string-expression--)------------><

expression
日付、タイム・スタンプ、文字ストリング、またはグラフィック・ストリングのいずれかの組み込みデータ・タイプの値を戻す式。

expression が 文字ストリングまたはグラフィック・ストリングの場合、その値は、日付またはタイム・スタンプの有効なストリング表現 でなければなりません。日付とタイム・スタンプのストリング表現の有効な形式に ついては、日付/時刻の値のストリング表記を参照してください。

string-expression
組み込み文字ストリング・データ・タイプか、グラフィック・ストリング・データ・タイプを戻す式。 値は曜日のフルネームと等しいか、または曜日の省略形と等しくなければなりません。例えば、英語の場合、以下のとおりです。
曜日 省略形
MONDAY MON
TUESDAY TUE
WEDNESDAY WED
THURSDAY THU
FRIDAY FRI
SATURDAY SAT
SUNDAY SUN
入力値の最短の長さは、省略形の長さです。 先行ブランクと末尾ブランクはストリング式 から削除されます。 その結果の値は大文字変換されるため、値の中の文字は大文字、小文字のどちらでも構いません。

関数の結果は、expression がストリングである場合を除き、expression と同じデータ・タイプになります。ストリングである場合は、TIMESTAMP(6) になります。引数のどちらかが NULL になる可能性がある場合は、結果も NULL になる可能性が あります。引数のどちらかが NULL である場合は、結果は NULL 値になります。

expression に含まれる情報は、時間、分、秒または 1 秒未満の値にいたるまで、関数によって変更されることはありません。 expression が日付を表すストリングである場合、結果として戻る TIMESTAMP 値の時刻情報には、すべてゼロが設定されています。

注記

各国語の考慮事項: ストリング式 内の曜日 (または省略形) の値は、上記の表にリストした米国英語の値でも、ジョブのメッセージに使用される言語に基づいた値のいずれでもかまいません。省略されていない曜日の名前は、ライブラリー *LIBL の中のメッセージ・ファイル QCPFMSG のメッセージ CPX9034 から検索されます。 省略された曜日の名前は、ライブラリー *LIBL の中のメッセージ・ファイル QCPFMSG のメッセージ CPX9039 から検索されます。

米国英語の値は常に NEXT_DAY 関数に受け入れられるため、多くの異なる言語処理環境で稼働する必要のあるアプリケーションの場合は、米国英語の値の使用を考慮することをお勧めします。

  • ジョブのデフォルト言語が米国英語であると想定し、ホスト変数 NEXTDAY を 2000 年 4 月 24 日の次の火曜日の日付に設定します。
    SET :NEXTDAY = NEXT_DAY(CURRENT_DATE, 'TUESDAY') 

    ホスト変数 NEXTDAY には、値「2000–04–25–00.00.00.000000」が設定されます。 ここで、CURRENT_DATE 特殊レジスターの値は「2000–04–24」とします。

  • ジョブのデフォルト言語が米国英語であると想定し、ホスト変数 NEXTDAY を 2000 年 5 月 の最初の月曜日の日付に設定します。 ホスト変数 DAYHV = 'MON' であると想定します。
    SET :NEXTDAY = NEXT_DAY(LAST_DAY(CURRENT_TIMESTAMP), :DAYHV)

    ホスト変数 NEXTDAY は、CURRENT_TIMESTAMP 特殊レジスターの値が '2000-04-24-12.01.01.123456' であるという想定では '2000-05-01-12.01.01.123456' の値に設定されます。

  • ジョブのデフォルト言語が米国英語であると想定し、以下を設定します。
    SELECT NEXT_DAY('2000-04-24', 'TUESDAY')
    FROM SYSIBM.SYSDUMMY1

    '2000-04-24' の次の火曜日である '2000-04-25-00.00.00.000000' が戻されます。