分享方式:


SQL 至 C:時間戳記

時間戳 ODBC SQL 資料類型的識別元如下:

  • SQL_TYPE_TIMESTAMP

下表顯示可轉換時間戳 SQL 資料的 ODBC C 資料類型。 如需數據表中數據行和詞彙的說明,請參閱 將數據從SQL轉換成 C 數據類型

C 類型識別碼 Test *TargetValuePtr *StrLen_or_IndPtr SQLSTATE
SQL_C_CHAR BufferLength> 字元位元組長度

20 <= BufferLength<= 字元位元組長度

BufferLength< 20
資料

截斷的數據[b]

未定義
以位元組為單位的數據長度

以位元組為單位的數據長度

未定義
n/a

01004

22003
SQL_C_WCHAR BufferLength> 字元長度

20 <= BufferLength<= 字元長度

BufferLength< 20
資料

截斷的數據[b]

未定義
以字元為單位的數據長度

以字元為單位的數據長度

未定義
n/a

01004

22003
SQL_C_BINARY 位元組長度的數據 <= BufferLength

數據 >BufferLength 的位元組長度
資料

未定義
以位元組為單位的數據長度

未定義
n/a

22003
SQL_C_TYPE_DATE 時間戳的時間部分為零[a]

時間戳的時間部分為非零[a]
資料

截斷的數據[c]
6[f]

6[f]
n/a

01S07
SQL_C_TYPE_TIME 時間戳的小數秒部分為零[a]

時間戳的小數秒部分為非零[a]
Data[d]

截斷的數據[d], [e]
6[f]

6[f]
n/a

01S07
SQL_C_TYPE_TIMESTAMP 時間戳的小數秒部分未截斷[a]

時間戳的小數秒部分被截斷[a]
Data[e]

截斷的數據[e]
16[f]

16[f]
n/a

01S07

[a] 這個轉換會忽略 BufferLength 的值。 驅動程序假設 *TargetValuePtr 的大小是 C 數據類型的大小。

[b] 時間戳的小數秒會截斷。

[c] 時間戳的時間部分會截斷。

[d] 會忽略時間戳的日期部分。

[e] 時間戳的小數秒部分會截斷。

[f] 這是對應 C 數據類型的大小。

當時間戳 SQL 資料轉換成字元 C 數據時,產生的字串會位於 「yyyy-mm-dd hh:mmss[。f...]“ 格式,其中最多 9 位數可用於小數秒。 此格式不會受到 Windows 國家/地區設定的影響。 (除了小數點和小數秒以外,不論時間戳 SQL 數據類型的有效位數為何,都必須使用整個格式。