Преобразование данных из SQL в C: отметки времени
Идентификатор типа данных ODBC SQL метки времени имеет следующий вид:
- SQL_TYPE_TIMESTAMP
В следующей таблице показаны типы данных ODBC C, в которые можно преобразовать данные SQL с меткой времени. Описание столбцов и терминов в таблице см. в разделе "Преобразование данных из SQL в типы данных C".
Идентификатор типа C | Тест | *TargetValuePtr | *StrLen_or_IndPtr | SQLSTATE |
---|---|---|---|---|
SQL_C_CHAR | Длина байтов символа BufferLength> 20 <= bufferLength<= длина байтов символов BufferLength< 20 |
Data Усеченные данные[b] Undefined |
Длина данных в байтах Длина данных в байтах Undefined |
Н/Д 01004 22003 |
SQL_C_WCHAR | Длина символа BufferLength> 20 <= длина символа BufferLength<= BufferLength< 20 |
Data Усеченные данные[b] Undefined |
Длина данных в символах Длина данных в символах Undefined |
Н/Д 01004 22003 |
SQL_C_BINARY | Длина байтов данных <= BufferLength Длина байтов данных >BufferLength |
Data Undefined |
Длина данных в байтах Undefined |
Н/Д 22003 |
SQL_C_TYPE_DATE | Время метки времени равно нулю[a] Временная часть метки времени ненулевой[a] |
Data Усеченные данные[c] |
6[f] 6[f] |
Н/Д 01S07 |
SQL_C_TYPE_TIME | Доля секунд, часть метки времени равна нулю[a] Доля секунд, часть метки времени ненулевой[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, результирующая строка находится в строке "гггг--мм дд чч:мм:ss[.f...]" формат, где для дробных секунд можно использовать до девяти цифр. Этот формат не влияет на параметр страны или региона Windows. (За исключением десятичной запятой и дробной секунды, необходимо использовать весь формат независимо от точности типа данных SQL метки времени.)