NEXT_DAY スカラー関数

NEXT_DAY スカラー関数は、expression の日付の翌日以降に最初にくる、string-expression で指定した曜日の日付/時刻値を戻します。

Read syntax diagramSkip visual syntax diagramNEXT_DAY(expression, string-expression locale-name )

スキーマは SYSIBM です。

expression
組み込みデータ・タイプ (DATE または TIMESTAMP) のいずれかの値を戻す式。
ストリング式
組み込み文字データ・タイプを返す式。 この値は、locale-name において有効な曜日である必要があります。 この値には、完全な曜日名か、または適切な省略形を指定できます。 例えば、ロケールが 'en_US' の場合は、以下の値が有効です。
表 1. 「en_US」ロケールでの曜日の有効な名前と省略形
曜日 省略形
MONDAY MON
TUESDAY TUE
WEDNESDAY WED
THURSDAY THU
FRIDAY FRI
SATURDAY SAT
SUNDAY SUN

入力値の最小長は、省略形の長さです。 値は大文字または小文字で指定できます。また、有効な省略形につづく後ろの文字は無視されます。

ロケール名
string-expression 値の言語指定に使用されるロケールを指定する文字定数。 locale-name の値は大/小文字の区別がなく、有効なロケールでなければなりません (SQLSTATE 42815)。 有効なロケールとその命名については、SQL および XQuery のロケール名を参照してください。 locale-name が指定されないと、 特殊レジスター CURRENT LOCALE LC_TIME の値が使用されます。

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

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

  • 決定論: NEXT_DAY は決定論的な関数です。 ただし、locale-name が明示的に指定されない場合、関数の呼び出しは、特殊レジスター CURRENT LOCALE LC_TIME の値によって決まります。 特殊レジスターを使用できないところでは、特殊レジスターの値に依存する関数の呼び出しを使用することはできません (SQLSTATE 42621、428EC、または 429BX)。

  • 例 1: 変数 NEXTDAY に、2007 年 4 月 24 日の翌日以降の最初の火曜日を代入します。
    
         SET NEXTDAY = NEXT_DAY(DATE '2007-04-24', 'TUESDAY')

    2007 年 4 月 24 日が火曜日であるため、変数 NEXTDAY には、値 '2007-05-01' が代入されます。

  • 例 2: 変数 vNEXTDAY に、タイム・スタンプとして 2007 年 5 月の最初の月曜日を設定します。 変数 vDAYOFWEEK の値は 'MON' であるとします。
    
         SET vNEXTDAY = NEXT_DAY(LAST_DAY(CURRENT_TIMESTAMP),vDAYOFWEEK)

    CURRENT_TIMESTAMP 特殊レジスターの値が '2007-04-24-12.01.01.123456' であるとき、変数 vNEXTDAY には、値 '2007-05-07-12.01.01.123456' が代入されます。