Period SQLから文字C型への変換 - ODBC Driver for Teradata

ODBC Driver for Teradata® ユーザー ガイド

Product
ODBC Driver for Teradata
Release Number
16.20
Published
2018年10月
Language
日本語
Last Update
2019-02-12
dita:mapPath
ja-JP/fxv1527114222338.ditamap
dita:ditavalPath
ja-JP/fxv1527114222338.ditaval
dita:id
B035-2526
Product Category
Teradata Tools and Utilities

下表に、文字形式でデータを取得した場合に返される形式を示します。

Period SQL型 SQL_C_CHARまたはSQL_C_WCHARへの変換
SQL_PERIOD_DATE 結果は次の文字列です。

(‘yyyy-mm-dd’, ‘yyyy-mm-dd’)

開始日付と終了日付の境界は、'yyyy-mm-dd'形式に変換されます。ODBC仕様では、日付SQLデータ(SQL_TYPE_DATE)を文字Cデータに変換する場合、常にこの形式が使用されます。

例:

(‘2007-05-01’, ‘2007-06-01’)

SQL_PERIOD_TIME 結果は次の形式の文字列です。

(‘hh:mi:ss[.f....]’, ‘hh:mi:ss[.f...]’)

開始時間と終了時間の境界は、"hh:mi:ss"形式に変換されます。ODBC仕様では、時間SQLデータ(SQL_TYPE_TIME)を文字Cデータに変換する場合、常にこの形式が使用されます。

“[.f...]”は、任意指定の秒の小数部分を表わします。Period TIMESTAMPの精度が0以外の場合にのみ含まれます。秒の小数部分には、最大6桁を使用できます(ODBCでは9桁まで可能だが、Period TIMESTAMPでは6桁までに制限)。

例:

(‘06:20:21’, ‘17:12:00’)

SQL_PERIOD_TIME_WITH_TIME_ZONE 結果は次の形式の文字列です。

(‘hh:mi:ss[.f...]+-hh:mi’’, ‘hh:mi:ss[.f...]+-hh:mi’’)

開始時間と終了時間の境界は、"hh:mi:ss+-hh:mi'"形式に変換されます。ODBCドライバでは、TIME WITH TIME ZONEを文字Cデータに変換する場合、この形式が使用されます。

例:

(‘06:20:21.22+02:00’, ‘17:12:00.22+02:00’)

SQL_PERIOD_TIMESTAMP 結果は次の文字列です。

(‘yyyy-mm-dd hh:mi:ss[.f...]’, ‘yyyy-mm-dd hh:mi:ss[.f...]’)

TIMESTAMPの開始と終了の境界は、“yyyy-mm-dd hh:mi:ss[.f....]”形式に変換されます。ODBC仕様では、TIMESTAMP SQLデータを文字Cデータに変換する場合、常にこの形式が使用されます。

例:

(‘2007-07-04 22:11:43.37’, ‘2007-07-04 22:11:50.00’)

SQL_PERIOD_TIMESTAMP_WITH_TIME_ZONE 結果は、SQL_PERIOD_TIMESTAMPの結果に、SQL_PERIOD_TIME_WITH_TIME_ZONEで説明した'+-hh:mi'を追加したものと同じです。

ODBC Driver for Teradataでは、受信バッファが小さすぎる場合に変換を行なうと、SQL_ERRORが返されます。これは、DateTime型ではC文字に変換するとSQL_SUCCESS_WITH_INFOと切り捨てられた文字列が返される場合があるのとは異なります。この違いの理由は、切り捨てられたDateTime文字列はアプリケーションにとって有用な場合があります(例えば、切り捨てられたSQL_DATEを使用して、年だけを取得可能)が、切り捨てられたPeriod文字列は有用ではないためです。