C から SQL へ: タイムスタンプ
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-ddh h:mm:ss[.f...]" 形式。
ドライバーは、タイムスタンプ C データ型からデータを変換するときに長さ/インジケーター値を無視し、データ バッファーのサイズがタイムスタンプ C データ型のサイズであると想定します。 長さ/インジケーター値は、SQLPutData のStrLen_or_Ind引数とsqlBindParameterのStrLen_or_IndPtr引数 で指定されたバッファーで渡されます。 データ バッファーは、SQLPutData の DataPtr 引数と、SQLBindParameter の ParameterValuePtr 引数で指定されます。