例: 指定した日以降の最初の火曜日の問合わせ
以下の問合わせを実行します。
SELECT NEXT_DAY(DATE '2009-12-20', 'TUESDAY');
結果として09/12/22が返されます。これは、2009年12月20日の日曜日の次にあたる火曜日が12/22になるためです。
例: 指定した日以降の最初の金曜日の問合わせ
以下の問合わせを実行します。
SELECT NEXT_DAY(DATE '2009-12-20', 'FRIDAY');
結果として09/12/25が返されます。これは、2009年12月20日の日曜日の次にあたる金曜日が12/25になるためです。
例: 別に指定した日以降の最初の金曜日の問合わせ
以下の問合わせを実行します。
SELECT NEXT_DAY(DATE '2009-12-25', 'FRIDAY');
結果として10/01/01が返されます。これは、2009年12月25日の金曜日の次にあたる金曜日が2010年1月1日になるためです。
例: 英語以外のday_values
NEXT_DAY(date_timestamp_value、day_value)はSDF(Specification for Data Formatting)と連動します。次の例では、日本語のtdlocaledef.txtと、NEXT_DAYがそれらの定義とどのように機能するかを示します。
// DBS System Formatting Data // Day and month names ShortDays { "\u65e5"; "\u6708"; "\u706b"; "\u6c34"; "\u6728"; "\u91d1"; "\u571f" } LongDays { "\u65e5\u66dc\u65e5"; "\u6708\u66dc\u65e5"; "\u706b\u66dc\u65e5"; /*火曜日*/ "\u6c34\u66dc\u65e5"; "\u6728\u66dc\u65e5"; "\u91d1\u66dc\u65e5"; "\u571f\u66dc\u65e5" } ShortMonths { "1\u6708"; "2\u6708"; "3\u6708"; "4\u6708"; "5\u6708"; "6\u6708"; "7\u6708"; "8\u6708"; "9\u6708"; "10\u6708"; "11\u6708"; "12\u6708" }
次のSQLは、エラーで失敗します。
select next_day(to_date('2015/06/22','YYYY/MM/DD'),'Tue') AS "日付";
代わりに、tdlocaledef.txtで次のように定義されている日本語のday_valueを使用します。
select next_day(to_date('2015/06/22','YYYY/MM/DD'),'火曜日') AS "日付" ; 日付 --------- 15/06/23
"\u706b\u66dc\u65e5";は以下のように日本語の「火曜日」を示します。
Sel _UNICODE U&'#706b#66dc#65e5' UESCAPE '#'; ' 火曜日' ----------------- 火曜日