目的
2つの関連付けられた日付/時刻構成要素があるデータ型。
日付/時刻の構成要素 | 指定内容 |
---|---|
beginning | 期間の開始境界。 |
ending | 期間の終了境界。 |
開始境界は包括的で、終了境界は排他的です。つまり、日付/時刻の範囲は開始境界から始まりますが、終了境界は含みません。
PERIOD(TIMESTAMP[(n)])列は、現在、TIME列またはTIMESTAMP列のためにある方法と同じ方法で、UTC形式で開始境界と終了境界を記録します。
構文
ANSI準拠
PERIODタイプは、ANSI SQL:2011規格に対するTeradataの拡張機能です。
ストレージ
PERIOD(TIMESTAMP[(n)])は可変長のデータ型であり、2つのTIMESTAMP値として保存されます。UNTIL_CHANGEDの終了境界値は、これらの可変長のデータ型用に1バイトを占有します。
要素型 | フィールド サイズ(バイト) | 行の最大サイズ(バイト) |
---|---|---|
TIMESTAMP(n) | 20。終了境界がUNTIL_CHANGEDでない場合 | 24。終了境界がUNTIL_CHANGEDでない場合 |
11。終了境界がUNTIL_CHANGEDの場合 | 16。終了境界がUNTIL_CHANGEDの場合 |
PERIOD(TIMESTAMP)の外部表現
フィールド モードでは、Teradata DatabaseはPERIOD(TIMESTAMP)データを文字データとして戻します。
LはこのPERIODデータ型と関連付けられたフォーマット用にフォーマットされた文字列の最大長と仮定します。 結果の文字列は、期間値の式の開始境界と終了境界を表わす2つの文字列を含みます。それぞれの最大長はLであり、それぞれが単一引用符(')で囲まれ、カンマとスペース(, )で区切られ、左右の括弧[( )]で囲まれます。 したがって、結果の文字列の最大長は2*L+8になります。
これが、例えば、形式が月の正式名称を含み、境界に対する特定の月が7月(July)の場合には、実際の長さがKとした場合、その長さは2*L+8より小さくなります。
- 秒: 4バイトの、クライアント形式に変換された符号付き整数。この整数は、位取りされた10進数で秒数を表わします(例えば、12.56秒は12560000として返されます)。
- 年:2バイトの、クライアント形式に変換された短い符号付き整数。この整数は年の値を表わします。
- 月:1バイトの符号なし整数。このバイトは月の値を表わします。
- 日:1バイトの符号なし整数。このバイトは月の日付を表わします。
- 時:1バイトの符号なし整数。このバイトは時間数を表わします。
- 分:1バイトの符号なし整数。このバイトは分の数を表わします。
制限
プライマリ インデックス列またはパーティション列を、PERIODデータ型を含む列にすることはできません。
例: PERIOD(TIMESTAMP)データ型
次のCREATE TABLE文は、WITH DEFAULTを使用して指定したデフォルト値でPERIOD(TIMESTAMP(3))列を定義します。WITH DEFAULTオプションは、CURRENT_TIMESTAMP(3)に設定された開始引数とUNTIL_CHANGEDに設定された終了引数のある期間値コンストラクタにデフォルト値を設定します。
CREATE TABLE t4 ( employee_id INTEGER, employee_name CHARACTER(15), employee_duration PERIOD(TIMESTAMP(3)) WITH DEFAULT );
関連トピック
PERIODタイプに適用できる関数と演算子の詳細について、<Teradata Vantage™ SQL関数、式、および述部、B035-1145>を参照してください。