TIMESTAMP WITH TIME ZONEの内部表現
概念的にはTIMESTAMP WITH TIME ZONEは、グレゴリオ暦で正しく定義された8つの数値フィールドで構成されたレコードとして扱われます。
| フィールド名 | 最小値 | 最大値 | Storage Format |
|---|---|---|---|
| SECOND | 00.000000 | 61.999999 この値は、時計に追加できるうるう秒を考慮に入れます。 |
INTEGER(DECIMAL(8,6)) |
| YEAR | 0001 | 9999 | SMALLINT |
| MONTH | 01 | 12 | BYTEINT |
| DAY | 01 | 28、29、30、または31 (月と年に対応) |
BYTEINT |
| HOUR | 00 | 23 | BYTEINT |
| MINUTE | 00 | 59 | BYTEINT |
| TIMEZONE_HOUR | -12.59 | +14.00 | BYTEINT |
| TIMEZONE_MINUTE | BYTEINT |
レコードは数値フィールドで構成されていますが、数値として処理されません。
内部格納形式の長さは12バイトです。
TIMESTAMP WITH TIME ZONEの外部表現
TIMESTAMP WITH TIME ZONEタイプは、レコードおよび標識モードでCHARACTERデータとしてインポートおよびエクスポートされます。その際、ANSI形式文字列とサイト定義のクライアント文字セットが使用されます。
| fractional_seconds_precisionの値 | タイプ | 形式 |
|---|---|---|
| 0 | CHAR(25) | 'yyyy-mm-dd hh:mi:ss-hh:mi' または 'yyyy-mm-dd hh:mi:ss-hh:mi' |
| n nは通常1~6 |
CHAR(26+n) | 'yyyy-mm-dd hh:mi:ss.ss…-hh:mi' または 'yyyy-mm-dd hh:mi:ss.ss…-hh:mi' |
次の表は、レコードおよび標識モードでTIMESTAMP WITH TIME ZONEタイプをエクスポートする方法を示すものです。
| fractional_seconds_precisionの値 | 長さ | 例 |
|---|---|---|
| 6 | 32 | '2000-01-01 11:37:58.123456+08:00' |
| 0 | 25 | '2000-01-01 11:37:58-08:00' |
TIMESTAMP WITH TIME ZONEの形式
TIMESTAMP WITH TIME ZONE形式とその変更方法の詳細については、TIMEおよびTIMESTAMPの形式を参照してください。
TIMESTAMP WITH TIME ZONEの暗黙の変換と明示的な変換
割り当て中や比較中に、VantageはCHARACTERタイプからTIMESTAMP WITH TIME ZONEタイプへの暗黙の変換を実行します。この変換は、CHARおよびVARCHARタイプでのみサポートされます。CLOBまたはCHAR/VARCHAR CHARACTER SET GRAPHICの文字データ型をTIMESTAMP WITH TIME ZONE.に変換することはできません。
VantageがTIMESTAMP WITH TIME ZONEタイプからTIMEタイプおよびDATEタイプへの暗黙の変換を実行する場合もあります。ただし、TIMESTAMP WITH TIMEZONEからTIMEへの暗黙の変換は、比較ではサポートされていません。
CASTを使用することにより、明示的にCHARACTERタイプをTIMESTAMP WITH TIME ZONEタイプに変換したり、TIMESTAMP WITH TIME ZONEタイプからTIMEまたはDATEタイプに変換することができます。
詳細については、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。