下表に、文字形式でデータを取得した場合に返される形式を示します。
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文字列は有用ではないためです。