ストレージ
PERIOD(TIMESTAMP[(n)] WITH TIME ZONE)は可変長のデータ型であり、2つのTIMESTAMP WITH TIME ZONE値として保存されます。UNTIL_CHANGEDの終了境界値は、これらの可変長のデータ型用に1バイトを占有します。
| Element Type | フィールド サイズ(バイト) | 行の最大サイズ(バイト) |
|---|---|---|
| TIMESTAMP(n) WITH TIME ZONE | 24。終了境界がUNTIL_CHANGEDでない場合 | 24。終了境界がUNTIL_CHANGEDでない場合 |
| 13。終了境界がUNTIL_CHANGEDの場合 | 16。終了境界がUNTIL_CHANGEDの場合 |
PERIOD(TIMESTAMP WITH TIME ZONE)の外部表現
フィールド モードでは、VantageはPERIOD(TIMESTAMP WITH TIME ZONE)データを文字データとして戻します。
LはこのPERIODデータ型と関連付けられたフォーマット用にフォーマットされた文字列の最大長と仮定します。 結果の文字列は、期間値の式の開始境界と終了境界を表わす2つの文字列を含みます。それぞれの最大長はLであり、それぞれが単一引用符(')で囲まれ、カンマとスペース(, )で区切られ、左右の括弧[( )]で囲まれます。 したがって、結果の文字列の最大長は2*L+8になります。
これが、例えば、形式が月の正式名称を含み、境界に対する特定の月が7月(July)の場合には、実際の長さがKとした場合、その長さは2*L+8より小さくなります。
フィールド モード以外のモード(および入力データ)に対するPERIOD(TIMESTAMP WITH TIME ZONE)の外部表現は、データの長さを表わす2バイトと、後に続く2つの連続したタイムスタンプ値とタイムゾーン値で構成されています。タイムスタンプ値は後述するように複数のフィールドから構成され、指定された順序で返されます。
- 秒: 4バイトの、クライアント形式に変換された符号付き整数。この整数は、位取りされた10進数で秒数を表わします(例えば、12.56秒は12560000として返されます)。
- 年:2バイトの、クライアント形式に変換された短い符号付き整数。この整数は年の値を表わします。
- 月:1バイトの符号なし整数。このバイトは月の値を表わします。
- 日:1バイトの符号なし整数。このバイトは月の日付を表わします。
- 時:1バイトの符号なし整数。このバイトは時間数を表わします。
- 分:1バイトの符号なし整数。このバイトは分の数を表わします。
- タイムゾーン時:1バイトの符号なし整数。このバイトはタイムゾーンの変位を時間で表わします。また、変位の正負も表わします。値16は0時を表わします。16未満の値は、指定された時間のタイムゾーン変位が負であることを表わします。つまり、この値が10の場合、タイムゾーンは-10時間で変位します。16より大きい場合は、時間の正のタイムゾーン変位(タイムゾーン時 - 16)を指定します。つまり、値20は+4時間の変位を意味します。
- タイムゾーン分:1バイトの符号なし整数。このバイトはタイムゾーンの変位を分で表わします。
制限
プライマリ インデックス列またはパーティション列を、PERIODデータ型を含む列にすることはできません。