タイムゾーンに関するANSI SQL:2011の概念では、夏時間の開始時と終了時に発生する時間の変更が正しく処理されません。夏時間の概念に対応するために、Teradata Databaseでは、タイムゾーンをUTCとローカル タイムゾーンの時刻間で変換するためのルール セットと定義しています。夏時間のルールと適用は実にさまざまであるため、それらを適切に保守するにはかなりの柔軟性を必要とします。
Daylight Saving Timeは米国英語で使用される用語です。英国英語では、これに相当する用語としてSummer Timeが使用されます。
データベースは、SQL SET TIME ZONEリクエストまたはtdlocaledefユーティリティを使用して提示されたタイムゾーン文字列を使用します(詳細については、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>を参照)。タイムゾーン文字列によって、セッションまたはユーザーに適用するルール セットが特定されます。SET TIME ZONE文とtdlocaledefユーティリティは同じタイムゾーン文字列を使用しますが、tdlocaledefではさらにタイムゾーン文字列に関連付けられるルールも指定する必要があります。
データベースは、SYSLIBデータベースに含まれるGetTimeZoneDisplacementという名前のシステム定義UDFへの入力パラメータとしてタイムゾーン ルール文字列を使用します。タイムゾーン文字列の追加と変更のルール、その関連ルールを含むGetTimeZoneDisplacement UDFについては、Teradata Vantage™ - SQLの日付/時刻関数と式、B035-1211を参照してください。特定のユーザーがデータベースにログオンすると、セッションまたはその特定のユーザーの時間と分のオフセットを判別するために文字列が解釈されます。その名前ごとにUDFは、夏時間からおよびその逆からの変更を行なう日時に応じて、変位を知るために必要とするルールと情報にアクセスします。
UDFはtzsパラメータを使用して定義され、そのタイムゾーン変位結果をINTERVAL HOUR TO MINUTEデータ型で返します。
有効なタイムゾーン文字列の完全なリストは、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>の「SET TIME ZONE」を参照してください。
以下のテーブルは、システム定義UDFがデータベースに値を返す方法をまとめたものです。
条件 | データベースの動作 |
---|---|
結果が有効 | 有効な標準タイムゾーン変位を表わす各タイムゾーン文字列に適用されるルール セット、夏時間ゾーン変位、夏時間の開始時刻、および終了タイムスタンプを返します。 |
tzsの値が無効 | リクエストをアボートし、リクエスト側にエラーを返します。 |
日付が古いためにその日の夏時間に関する情報がシステムにない |