SQL から C へ: タイムスタンプ
タイムスタンプ ODBC SQL データ型の識別子は次のとおりです。
- SQL_TYPE_TIMESTAMP
次の表に、タイムスタンプ SQL データを変換できる ODBC C データ型を示します。 表の列と用語の詳細については、「 SQL から C データ型へのデータ変換を参照してください。
C 型識別子 | テスト | *TargetValuePtr | *StrLen_or_IndPtr | SQLSTATE |
---|---|---|---|---|
SQL_C_CHAR | BufferLength> 文字バイト長 20 <= BufferLength<= 文字バイト長 BufferLength< 20 |
データ 切り捨てられたデータ[b] Undefined |
データの長さ (バイト単位) データの長さ (バイト単位) Undefined |
該当なし 01004 22003 |
SQL_C_WCHAR | BufferLength> 文字の長さ 20 <= BufferLength<= 文字長 BufferLength< 20 |
データ 切り捨てられたデータ[b] Undefined |
文字単位のデータの長さ 文字単位のデータの長さ Undefined |
該当なし 01004 22003 |
SQL_C_BINARY | データのバイト長 <= BufferLength データのバイト長 >BufferLength |
データ Undefined |
データの長さ (バイト単位) Undefined |
該当なし 22003 |
SQL_C_TYPE_DATE | タイムスタンプの時刻部分が 0 である[a] タイムスタンプの時刻部分が 0 以外である[a] |
データ 切り捨てられたデータ[c] |
6[f] 6[f] |
該当なし 01S07 |
SQL_C_TYPE_TIME | タイムスタンプの秒の小数部が 0 です[a] タイムスタンプの秒の小数部が 0 以外である[a] |
Data[d] 切り捨てられたデータ[d]、[e] |
6[f] 6[f] |
該当なし 01S07 |
SQL_C_TYPE_TIMESTAMP | タイムスタンプの秒の小数部が切り捨てられない[a] タイムスタンプの秒の小数部が切り捨てられる[a] |
Data[e] 切り捨てられたデータ[e] |
16[f] 16[f] |
該当なし 01S07 |
[a] この変換では、 BufferLength の値は無視されます。 ドライバーは、*TargetValuePtr のサイズが C データ型のサイズであることを前提としています。
[b] タイムスタンプの秒の小数部が切り捨てられます。
[c] タイムスタンプの時刻部分が切り捨てられます。
[d] タイムスタンプの日付部分は無視されます。
[e] タイムスタンプの秒の小数部が切り捨てられます。
[f] これは、対応する C データ型のサイズです。
タイムスタンプ SQL データが文字 C データに変換されると、結果の文字列は "yyyy-mm-dd h:mm:ss[.f...]" 形式。秒の小数部には最大 9 桁の数字を使用できます。 この形式は、Windows の国/地域の設定の影響を受けません。 (小数点と秒の小数部を除き、タイムスタンプ SQL データ型の有効桁数に関係なく、書式全体を使用する必要があります)。