2つの関連付けられた日付/時刻構成要素があるデータ型。
日付/時刻の構成要素 | 指定内容 |
---|---|
beginning | 期間の開始境界。 |
ending | 期間の終了境界。 |
開始境界は包括的で、終了境界は排他的です。つまり、日付/時刻の範囲は開始境界から始まりますが、終了境界は含みません。
構文
PERIOD(DATE) [ attribute [...] ]
ANSI準拠
PERIODタイプは、ANSI SQL:2011規格に対するTeradataの拡張機能です。
格納
PERIOD(DATE)フィールドは固定長のデータ型であり、2つの日付値として保存されます。
要素型 | フィールド サイズ(バイト) | 行の最大サイズ(バイト) |
---|---|---|
DATE | 8 | 8 |
PERIOD(DATE)の外部表現
フィールド モードでは、Teradata DatabaseはPERIOD(DATE)データを文字データとして戻します。
LはこのPERIODデータ型と関連付けられたフォーマット用にフォーマットされた文字列の最大長と仮定します。 結果の文字列は、期間値の式の開始境界と終了境界を表わす2つの文字列を含みます。それぞれの最大長はLであり、それぞれが単一引用符(')で囲まれ、カンマとスペース(, )で区切られ、左右の括弧[( )]で囲まれます。 したがって、結果の文字列の最大長は2*L+8になります。
これが、例えば、形式が月の正式名称を含み、境界に対する特定の月が7月(July)の場合には、実際の長さがKとした場合、その長さは2*L+8より小さくなります。
フィールド モード以外のモード(および入力データ)に対するPERIOD(DATE)の外部表現は、2つの連続した日付値から構成されています。各データの値は4バイトの、クライアント形式に変換された符号付き整数です。この整数は、DATEデータ型と同じ方法、例えば、(10000*(年-1900)) + (100*月) +日)で日付を表わします。
制限
プライマリ インデックス列またはパーティション列を、PERIODデータ型を含む列にすることはできません。
例: PERIOD(DATE)データ型
次のCREATE TABLE文は、PERIODリテラルを使用したデフォルト値のセットでPERIOD(DATE)列を定義します。
CREATE TABLE t1 ( employee_id INTEGER, employee_name CHARACTER(15), employee_duration PERIOD(DATE) DEFAULT PERIOD '(2005-02-03, 2006-02-03)' );
例: Java UDFのPERIODパラメータ
REPLACE FUNCTION PDT_UDF (P1 PERIOD(DATE), P2 PERIOD(DATE)) RETURNS PERIOD (DATE) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.pdt_udf'; public static java.sql.Struct pdt_udf(java.sql.Struct p1, java.sql.Struct p2) throws SQLException
または、次のような関数を定義することができます。
REPLACE FUNCTION PDT_UDF (P1 PERIOD(DATE), P2 PERIOD(DATE)) RETURNS PERIOD (DATE) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.pdt_udf(java.sql.Struct, java.sql.Struct) returns java.sql.Struct'; public static java.sql.Struct pdt_udf(java.sql.Struct p1, java.sql.Struct p2) throws SQLException
例: Java外部ストアド プロシージャのPERIODパラメータ
REPLACE PROCEDURE PDT_XSP(IN P1 PERIOD(DATE), INOUT P2 PERIOD(DATE), OUT P3 PERIOD(DATE)) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.pdt_xsp'; public static void pdt_xsp(java.sql.Struct p1, java.sql.Struct[] p2, java.sql.Struct[] p3) throws SQLException
関連トピック
PERIODタイプに適用できる関数と演算子の詳細について、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。