Da SQL a C: timestamp

L'identificatore per il tipo di dati ODBC SQL timestamp è il seguente:

  • SQL_TYPE_TIMESTAMP

Nella tabella seguente vengono illustrati i tipi di dati ODBC C in cui è possibile convertire i dati SQL timestamp. Per una spiegazione delle colonne e dei termini nella tabella, vedere Conversione di dati da SQL a tipi di dati C.

Identificatore del tipo C   Test *TargetValuePtr *StrLen_or_IndPtr SQLSTATE
SQL_C_CHAR Lunghezza byte carattere BufferLength>

20 <= BufferLength<= Lunghezza byte carattere

BufferLength< 20
Dati

Dati troncati[b]

Non definito
Lunghezza dei dati in byte

Lunghezza dei dati in byte

Non definito
n/d

01004

22003
SQL_C_WCHAR Lunghezza carattere BufferLength>

20 <= BufferLength<= Lunghezza carattere

BufferLength< 20
Dati

Dati troncati[b]

Non definito
Lunghezza dei dati in caratteri

Lunghezza dei dati in caratteri

Non definito
n/d

01004

22003
SQL_C_BINARY Lunghezza byte dei dati <= BufferLength

Lunghezza byte dei dati >BufferLength
Dati

Non definito
Lunghezza dei dati in byte

Non definito
n/d

22003
SQL_C_TYPE_DATE La parte temporale del timestamp è zero[a]

La parte temporale del timestamp è diversa da zero[a]
Dati

Dati troncati[c]
6[f]

6[f]
n/d

01S07
SQL_C_TYPE_TIME La parte dei secondi frazionari del timestamp è zero[a]

La parte dei secondi frazionari del timestamp è diversa da zero[a]
Dati[d]

Dati troncati[d], [e]
6[f]

6[f]
n/d

01S07
SQL_C_TYPE_TIMESTAMP La parte frazionaria del timestamp non viene troncata[a]

Parte frazionaria del timestamp viene troncata[a]
Data[e]

Dati troncati[e]
16[f]

16[f]
n/d

01S07

[a] Il valore di BufferLength viene ignorato per questa conversione. Il driver presuppone che le dimensioni di *TargetValuePtr siano le dimensioni del tipo di dati C.

[b] I secondi frazionari del timestamp vengono troncati.

[c] La parte temporale del timestamp viene troncata.

[d] La parte relativa alla data del timestamp viene ignorata.

[e] La parte dei secondi frazionari del timestamp viene troncata.

[f] Dimensioni del tipo di dati C corrispondente.

Quando i dati SQL timestamp vengono convertiti in dati C di tipo carattere, la stringa risultante si trova in "aaaa-mm-gg hh:mm:ss[.f...]" formato, in cui è possibile usare fino a nove cifre per i secondi frazionari. Questo formato non è interessato dall'impostazione paese/area geografica di Windows. Ad eccezione del separatore decimale e dei secondi frazionari, è necessario usare l'intero formato, indipendentemente dalla precisione del tipo di dati SQL timestamp.