C から SQL へ: Timestamp

ODBC C データ型のタイムスタンプの識別子は次のとおりです。

SQL_C_TYPE_TIMESTAMP

次の表は、タイムスタンプ C データの変換先となる ODBC SQL データ型を示しています。 テーブル内の列と用語の詳細については、「 データを C から SQL データ型に変換する」を参照してください。

SQL 型識別子 テスト SQLSTATE
SQL_CHAR

SQL_VARCHAR

SQL_LONGVARCHAR
列バイト長 >= 文字バイト長

19 <= 列バイト長 < 文字バイト長

列バイト長 < 19

データ値が有効なタイムスタンプではありません
該当なし

22001

22001

22008
SQL_WCHAR

SQL_WVARCHAR

SQL_WLONGVARCHAR
列の文字長 >= データの文字長

19 <= 列文字の長さ < データの文字長

列文字の長さ < 19

データ値が有効なタイムスタンプではありません
該当なし

22001

22001

22008
SQL_TYPE_DATE 時間フィールドは 0 です

時間フィールドは 0 以外です

データ値に有効な日付が含まれていない
該当なし

22008

22007
SQL_TYPE_TIME 秒の小数部のフィールドは 0[a]

秒の小数部のフィールドが 0 以外である[a]

データ値に有効な時刻が含まれていない
該当なし

22008

22007
SQL_TYPE_TIMESTAMP 秒の小数部のフィールドが切り捨てられない

秒の小数部のフィールドが切り捨てられる

データ値が有効なタイムスタンプではありません
該当なし

22008

22007

[a] タイムスタンプ構造体の日付フィールドは無視されます。

SQL_C_TIMESTAMP構造体で有効な値の詳細については、この付録の「 C データ型」を参照してください。

タイムスタンプ C データが文字 SQL データに変換されると、結果の文字データは "yyyy-mm-ddhh:mm:ss[。f...]" 形式。

ドライバーは、タイムスタンプ C データ型からデータを変換するときに長さ/インジケーター値を無視し、データ バッファーのサイズがタイムスタンプ C データ型のサイズであると想定します。 長さ/インジケーター値は、SQLPutDataStrLen_or_Ind 引数と、SQLBindParameterStrLen_or_IndPtr 引数で指定されたバッファーで渡されます。 データ バッファーは、SQLPutDataDataPtr 引数と SQLBindParameterParameterValuePtr 引数で指定されます。