Cデータ型定義
typedef int PDT_HANDLE;
使用
PDT_HANDLEデータ型は、PERIOD(DATE)、PERIOD(TIME(n))、PERIOD(TIME(n) WITH TIME ZONE)、PERIOD(TIMESTAMP(n))、またはPERIOD(TIMESTAMP(n) WITH TIME ZONE))引数または戻り型を渡したり戻したりするときに使用します。
SQL PERIOD(TIME(n))、PERIOD(TIME(n) WITH TIME ZONE)、PERIOD(TIMESTAMP(n))、またはPERIOD(TIMESTAMP(n) WITH TIME ZONE))型に定義されている秒の小数点以下桁数は、入力引数に適用され、関数の引数を戻します。値の有効範囲外の値はエラーを生成します。
UDFに渡すPERIOD(TIME(n))とPERIOD(TIMESTAMP(n))の値は、すべて協定世界時(UTC)にします。また、UDFから返すPERIOD(TIME(n))とPERIOD(TIMESTAMP(n))の値は、すべてUTCにする必要があります。
PERIOD(TIME(n) WITH TIME ZONE)とPERIOD(TIMESTAMP(n) WITH TIME ZONE)のタイプには、タイムゾーン フィールドのzone_hourとzone_minuteが含まれています。これらのフィールドには、内部形式と外部形式があります。これらのタイプの入力引数をUDFに渡すときには、その値を内部形式にする必要があります。同様に、これらのタイプの戻り引数も、内部形式にする必要があります。
TIMEZONE_INTERNAL_TO_EXTERNAL(i, s, h, m)
TIMEZONE_EXTERNAL_TO_INTERNAL(s, h, m, i)
- i
- ANSI_Time_WzoneまたはANSI_TimeStamp_Wzoneのいずれかのポインタ。
- s
- iの符号を格納するBYTEINT値: hとmが負の場合は0、正の場合は1。
- h
- iの時間オフセットを格納するBYTEINT値。
- m
- iの分オフセットを格納するBYTEINT値。
負のオフセットの最大値は-12:59になります。正のオフセットの最大値は+14:00になります。
この表現では、2通りのUTC表現(+00:00と-00:00)をもたらすことになります。これは、どちらも表示目的で使用している内部表現をそのまま反映しています。
PERIOD型の詳細については、<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>を参照してください。
UDF定義の中でPERIOD(DATE)を使用する例、およびC関数宣言の中でPDT_HANDLEを使用する例を以下に示します。
SQL関数定義 | 対応するC関数宣言 |
---|---|
CREATE FUNCTION F1 ( A PERIOD(DATE) ) RETURNS PERIOD(DATE) ...; |
void f1( PDT_HANDLE *a, PDT_HANDLE *result, ... ) { ... } |