次の方法で共有


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 データ型の有効桁数に関係なく、書式全体を使用する必要があります)。