16.20 - 例 - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL日付と時刻の関数および式

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1211-162K-JPN

例: 指定した日以降の最初の火曜日の問合わせ

以下の問合わせを実行します。

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_valueday_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 '#';
' 火曜日'
-----------------
 火曜日