17.10 - TZ_DST構造体 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLの日付/時刻関数と式

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1211-171K-JPN
Language
日本語 (日本)

TZ_DST構造体は、TZwithDST構成要素の配列です。これらの各構成要素では、タイムゾーン文字列とそれに関連するルールを記述します。TZwithDST構造体の定義は、次のとおりです。

typedef struct TZwithDST
{
    CHARACTER_LATIN  tzstring[TZSTRINGSIZE];
    INTEGER          number_of_rules;
    DSTRules         TZRules[TZRulesEntries];
    SMALLINT         Standardtzdispl_hour; 
    SMALLINT         Standardtzdispl_minute; 
} TZwithDST;
tzstring
タイムゾーン文字列の名前。例えば、"America Pacific"。
タイムゾーン文字列の最大長は130バイトです。
number_of_rules
このタイムゾーン文字列に関連するルールの数。
タイムゾーン文字列ごとに最大6つのルールが許可されます。
TZRules
ルールを記述する各DSTRules構成要素の配列です。これらのルールは、タイムゾーン文字列のタイムゾーン変位を計算するために使用されます。
DSTRules構造の定義は次のとおりです。
typedef struct DSTRules
{
    startendDSTInfo  startDST;
    startendDSTInfo  endDST;
    yearDisplInfo    validyrs;
} DSTRules;
Standardtzdispl_hour
標準タイムゾーン変位の時間です。
Standardtzdispl_minute
標準タイムゾーン変位の分です。
startDST
夏時間(DST)を開始する日付と時間を指定します。以下の表のフィールドを指定できます。フィールドが該当しない場合は、0を入力します。
endDST
夏時間を終了する日付と時間を指定します。以下の表のフィールドを指定できます。フィールドが該当しない場合は、0を入力します。
validyrs
DSTの開始日と終了日を適用する年を指定します。この年範囲に関連する情報には、以下の項目があります。
  • start_year - このDSTルールを開始する年。
  • end_year - このDSTルールを終了する年。
  • Standardtzdispl_hour - 標準タイムゾーン変位の時間。
  • Standardtzdispl_minute - 標準タイムゾーン変位の分。
  • DSTtzdispl_hour - 夏時間用のタイムゾーン変位の時間。
  • DSTtzdispl_minute - 夏時間用のタイムゾーン変位の分。

startDSTとendDSTには、以下の項目を設定できます。該当しないフィールドには、0を入力してください。

startDSTおよびendDSTフィールド
フィールド 説明
rule_type DSTの開始日と終了日の指定方法を示します。有効な値は次のとおりです。
意味
0 指定なし。デフォルトで標準のタイムゾーン変位になる。
1 DSTは、monthフィールドとday_of_monthフィールドで指定される、特定の固定日に開始または終了する。
2 DSTは、month、day_of_weekおよびweek_of_monthフィールドで示される、月の第1週、第2週または第3週に開始または終了する。
3 DSTは、month、day_of_weekおよびweek_of_monthフィールドで示される、月の最後の週日の2週前の週日、3週前の週日、月の最後の週日に開始または終了する。
4 DSTは、day_of_monthフィールドで指定された日付の次の週日または直後の日に、開始または終了する。月と週日はmonthおよびday_of_weekフィールドで指定する。

例えば、タイムゾーン文字列'America Pacific'の場合、開始日のルールは3月8日の後の最初の日曜日です(2010年の3月14日)。

month DSTを開始または終了する月。有効な値は0~12です。このフィールドは、rule_type 1、2、3および4で使用します。

例えば、タイムゾーン文字列'America Pacific'の場合、開始日のルールは3月8日の後の最初の日曜日なので、startDST構造体のこのフィールドの値は、3月を表現する3になります。

day_of_month rule_typeが1の場合、このフィールドにはDSTを開始または終了する月の日付を指定します。例えば、DSTが、ローカル タイムで8月21日の午前12:00に終了する場合、endDST構造体のこのフィールドには値21が格納されます。

rule_typeが4の場合、このフィールドで指定した日付の次の週日または直後の日に、DSTを開始または終了します。例えば、タイムゾーン文字列'America Pacific'の場合、開始日のルールは3月8日の後の最初の日曜日なので、startDST構造体のこのフィールドには値8が格納されます。

rule_typeが0、2または3の場合、このフィールドは使用されず、値は0になります。

day_of_week 有効な値は0~7です。それぞれで日曜日から土曜日を表わします。このフィールドは、rule_type 2、3および4で使用します。

例えば、タイムゾーン文字列'America Pacific'の場合、開始日のルールは3月8日の後の最初の日曜日なので、startDST構造体のこのフィールドの値は、日曜日を表現する0になります。

week_of_month 有効な値は、1、2、3、4、5、-1および-2です。それぞれ、最初の週日、2番目の週日、3番目の週日、4番目の週日、5番目の週日、最後の週日、および最後から2つ前の週日を表現しています。このフィールドは、rule_type 2および3で使用します。

例えば、タイムゾーン文字列'Europe Azores'の場合、開始日のルールは、3月の最終日曜日になるので、startDST構造体のこのフィールドの値は、月の最後の週を表現する-1になります。

loctime DSTを開始または終了するローカル タイムです。

例えば、"02:00:00"は、ローカル タイムの午前2:00にDSTを開始または終了すること示します。