Aracılığıyla paylaş


SQL'den C'ye: Zaman damgası

Zaman damgası ODBC SQL veri türünün tanımlayıcısı aşağıdaki gibidir:

  • SQL_TYPE_TIMESTAMP

Aşağıdaki tabloda, zaman damgası SQL verilerinin dönüştürülebileceği ODBC C veri türleri gösterilmektedir. Tablodaki sütunların ve terimlerin açıklaması için bkz. Verileri SQL'den C Veri Türlerine Dönüştürme.

C türü tanımlayıcısı Test * TargetValuePtr * Strlen_or_ındptr SQLSTATE
SQL_C_CHAR BufferLength> Karakter bayt uzunluğu

20 <= BufferLength<= Karakter bayt uzunluğu

BufferLength< 20
Data

Kesilen veriler[b]

Tanımsız
Bayt cinsinden veri uzunluğu

Bayt cinsinden veri uzunluğu

Tanımsız
Yok

01004

22003
SQL_C_WCHAR BufferLength> Karakter uzunluğu

20 <= BufferLength<= Karakter uzunluğu

BufferLength< 20
Data

Kesilen veriler[b]

Tanımsız
Karakter cinsinden veri uzunluğu

Karakter cinsinden veri uzunluğu

Tanımsız
Yok

01004

22003
SQL_C_BINARY Verilerin <bayt uzunluğu = BufferLength

BufferLength verilerinin > bayt uzunluğu
Data

Tanımsız
Bayt cinsinden veri uzunluğu

Tanımsız
Yok

22003
SQL_C_TYPE_DATE Zaman damgasının zaman bölümü sıfır[a]

Zaman damgasının zaman bölümü sıfır değil[a]
Data

Kesilen veriler[c]
6[f]

6[f]
Yok

01S07
SQL_C_TYPE_TIME Zaman damgasının kesirli saniye bölümü sıfırdır[a]

Zaman damgasının kesirli saniye bölümü sıfır değil[a]
Veri[d]

Kesilen veriler[d], [e]
6[f]

6[f]
Yok

01S07
SQL_C_TYPE_TIMESTAMP Zaman damgasının kesirli saniye bölümü kesilmedi[a]

Zaman damgasının kesirli saniye bölümü kesildi[a]
Veri[e]

Kesilmiş veriler[e]
16[f]

16[f]
Yok

01S07

[a] BufferLength değeri bu dönüştürme için yoksayıldı. Sürücü, *TargetValuePtr boyutunun C veri türünün boyutu olduğunu varsayar.

[b] Zaman damgasının kesirli saniyeleri kesilir.

[c] Zaman damgasının zaman dilimi kesilir.

[d] Zaman damgasının tarih bölümü yoksayılır.

[e] Zaman damgasının kesirli saniye kısmı kesilir.

[f] Bu, karşılık gelen C veri türünün boyutudur.

Zaman damgası SQL verileri C karakterine dönüştürüldüğünde, sonuçta elde edilen dize "yyyy-mm-ddhh:mm:ss[.f...]" biçimindedir; burada kesirli saniyeler için en fazla dokuz basamak kullanılabilir. Bu biçim, Windows ülke/bölge ayarından etkilenmez. (Ondalık nokta ve kesirli saniyeler dışında, zaman damgası SQL veri türünün duyarlığından bağımsız olarak biçimin tamamı kullanılmalıdır.)