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:mm:ss[。f...]“ 格式,其中最多 9 位數可用於小數秒。 此格式不會受到 Windows 國家/地區設定的影響。 (除了小數點和小數秒以外,不論時間戳 SQL 數據類型的有效位數為何,都必須使用整個格式。