NEXT_DAY スカラー関数

NEXT_DAY 関数は、expression の日付よりも後の、string-expression で指名された最初の曜日を表す日時値を返します。

構文図を参照するビジュアルシンタックスダイアグラムをスキップするNEXT_DAY( 式, 文字列式)

スキーマは SYSIBM です。

expression がタイム・スタンプまたはタイム・スタンプの有効なストリング表現である場合、そのタイム・スタンプの値は expression と同じ時間、分、秒、およびミリ秒を持ちます。 expression が日付または日付の有効なストリング表現である場合、 結果の時間、分、秒、およびミリ秒の値は 0 になります。

日付、タイム・スタンプ、文字ストリング、またはグラフィック・ストリングのいずれかの組み込みデータ・タイプを戻す式。 expression が文字ストリングまたはグラフィック・ストリングの場合、 この expression は CLOB または DBCLOB であってはなりません。また expression の値は、実際の長さが 255 バイト以下の、日付またはタイム・スタンプの有効なストリング表現であることが必要です。 タイム・スタンプのストリング表現内のタイム・ゾーンは無視されます。 日付とタイムスタンプの文字列表現の有効な形式については、「日時値の文字列表現」 を参照してください。

expression のデータ・タイプが TIMESTAMP WITHOUT TIME ZONE でない場合、expression は以下のようにキャストされます。

  • expression が TIMESTAMP WITH TIME ZONE の値である場合、expression は、expression と同じ精度の TIMESTAMP WITHOUT TIME ZONE にキャストされます。
  • それ以外の場合、expression は TIMESTAMP(6) WITHOUT TIME ZONE にキャストされます。
文字列式
LOB でない組み込みの文字データ・タイプまたはグラフィック・ストリング・データ・タイプを戻す式。 プラットフォーム間の移植性のために、 この値については、曜日の正式名称との一致を比較するか、曜日の省略形との一致を 比較する必要があります。 以下に例を示します。
曜日 省略語
MONDAY MON
TUESDAY TUE
WEDNESDAY WED
THURSDAY THU
FRIDAY FRI
SATURDAY SAT
SUNDAY SUN
入力値の最小長は、省略形の長さです。 string-expression には、先行ブランクを指定しないでください。 末尾ブランクは、string-expression から切り取られます。 その結果としての値は、大文字に変換されます。 有効な省略形の直後にある文字はブランク以外すべて無視されます。

expression がタイム・スタンプである場合、結果は expression と同じ精度を持つ TIMESTAMP WITHOUT TIME ZONE 値です。 expression が DATE の場合、結果は DATE 値になります。 それ以外の場合、結果は TIMESTAMP(6) WITHOUT TIME ZONE 値です。

expression に含まれる時間、分、秒、または端数秒の情報は、この関数では変更されません。 expression が日付を表すストリングである場合、結果のタイム・スタンプ値の時刻情報はすべてゼロに設定されます。

結果は NULL 値になることがあります。いずれかの引数が NULL 値である場合、結果は NULL 値になります。

結果の CCSID は、引数のコード化スキームに適合する CCSID であり、結果のサブタイプは、CCSID に適合するサブタイプです。

例 1: ホスト変数 NEXTDAY に、2007 年 4 月 24 日に続く火曜日の日付のタイム・スタンプを設定します。
   SET :NEXTDAY = NEXT_DAY(TIMESTAMP '2007-04-24-00.00.00.000000', 'TUESDAY'); 
ホスト変数 NEXTDAY は、2007 年 4 月 24 日はそれ自体火曜日であるため、値「2007-05-01-00.00.00.000000」で設定されます。
例 2: ホスト変数 vNEXTDAY に、 2007 年 5 月の最初の月曜日の日付を設定します。 ホスト変数 vDAYOFWEEK = 'MON' とします。
   SET :vNEXTDAY = NEXT_DAY(LAST_DAY(CURRENT_DATE),:vDAYOFWEEK);   
ホスト変数 vNEXTDAY には値「2007-05-07」が設定されます。 ここで、CURRENT_DATE 特殊レジスターの値は「2007-04-24」とします。