16.20 - TZ_DST構造体 - Teradata Vantage NewSQL Engine

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

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

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

typedef struct TZwithDST
{
    CHARACTER_LATIN  tzstring[TZSTRINGSIZE];
    int              number_of_rules;
    DSTRules         TZRules[TZRulesEntries];
    SMALLINT         Standardtzdispl_hour; 
    SMALLINT         Standardtzdispl_minute; 
} TZwithDST;

説明:

フィールド 説明
tzstring タイムゾーン文字列の名前。例えば、"America Pacific"。

タイムゾーン文字列の最大長は130バイトです。

number_of_rules このタイムゾーン文字列に関連するルールの数。各タイムゾーン文字列には、最大6つのルールが許可されています。
TZRules ルールを記述する各DSTRules構成要素の配列です。これらのルールは、タイムゾーン文字列のタイムゾーン変位を計算するために使用されます。
Standardtzdispl_hour 標準タイムゾーン変位の時間です。
Standardtzdispl_minute 標準タイムゾーン変位の分です。

TZRules配列の各DSTRules構成要素では、タイムゾーン文字列のルールを記述します。DSTRules構造体の定義を示します。

typedef struct DSTRules
{
    startendDSTInfo  startDST;
    startendDSTInfo  endDST;
    yearDisplInfo    validyrs;
} DSTRules;

説明:

フィールド 説明
startDST 夏時間(DST)を開始する日付と時間を指定します。
endDST 夏時間(DST)を終了する日付と時間を指定します。
validyrs DSTの開始日と終了日を適用する年を指定します。この年範囲に関連する情報には、以下の項目があります。
  • start_year - このDSTルールを開始する年。
  • end_year - このDSTルールを終了する年。
  • Standardtzdispl_hour - 標準タイムゾーン変位の時間。
  • Standardtzdispl_minute - 標準タイムゾーン変位の分。
  • DSTtzdispl_hour - 夏時間用のタイムゾーン変位の時間。
  • DSTtzdispl_minute - 夏時間用のタイムゾーン変位の分。

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

フィールド 説明
rule_type DSTの開始日と終了日の指定方法を示します。有効な値は次のとおりです。
  • 0 - DSTの開始または終了情報は指定されていない。標準タイムゾーン変位が使用されます。
  • 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を開始または終了すること示します。