Teilen über


SQL zu C: Zeitstempel

Der Bezeichner für den SQL-Datentyp "Timestamp ODBC" lautet wie folgt:

  • SQL_TYPE_TIMESTAMP

In der folgenden Tabelle sind die ODBC-C-Datentypen aufgeführt, in die SQL-Zeitstempeldaten konvertiert werden können. Eine Erläuterung der Spalten und Begriffe in der Tabelle finden Sie unter Konvertieren von Daten aus SQL in C-Datentypen.

C-Typbezeichner Testen *TargetValuePtr *StrLen_or_IndPtr SQLSTATE
SQL_C_CHAR PufferLength-Zeichenbytelänge>

20 <= BufferLength<= Länge des Zeichenbytes

BufferLength< 20
Daten

Abgeschnittene Daten[b]

Nicht definiert
Länge der Daten in Byte

Länge der Daten in Byte

Nicht definiert
Nicht zutreffend

01004

22003
SQL_C_WCHAR PufferLength-Zeichenlänge>

20 <= BufferLength<= Zeichenlänge

BufferLength< 20
Daten

Abgeschnittene Daten[b]

Nicht definiert
Länge der Daten in Zeichen

Länge der Daten in Zeichen

Nicht definiert
Nicht zutreffend

01004

22003
SQL_C_BINARY Bytelänge der Daten <= BufferLength

Bytelänge von Data >BufferLength
Daten

Nicht definiert
Länge der Daten in Byte

Nicht definiert
Nicht zutreffend

22003
SQL_C_TYPE_DATE Der Zeitteil des Zeitstempels ist null[a]

Der Zeitteil des Zeitstempels ist "nonzero[a]
Daten

Abgeschnittene Daten[c]
6[f]

6[f]
Nicht zutreffend

01S07
SQL_C_TYPE_TIME Anteilige Sekunden des Zeitstempels ist null[a]

Anteilige Sekunden des Zeitstempels ist ungleich Null[a]
Data[d]

Abgeschnittene Daten[d], [e]
6[f]

6[f]
Nicht zutreffend

01S07
SQL_C_TYPE_TIMESTAMP Anteilige Sekunden des Zeitstempels werden nicht abgeschnitten[a]

Anteilige Sekunden des Zeitstempels werden abgeschnitten[a]
Daten[e]

Abgeschnittene Daten[e]
16[f]

16[f]
Nicht zutreffend

01S07

[a] Der Wert von BufferLength wird für diese Konvertierung ignoriert. Der Treiber geht davon aus, dass die Größe von *TargetValuePtr die Größe des C-Datentyps ist.

[b] Die Bruchteilsekunden des Zeitstempels werden abgeschnitten.

[c] Der Zeitteil des Zeitstempels wird abgeschnitten.

[d] Der Datumsteil des Zeitstempels wird ignoriert.

[e] Der Bruchteil von Sekunden des Zeitstempels wird abgeschnitten.

[f] Dies ist die Größe des entsprechenden C-Datentyps.

Wenn SQL-Zeitstempeldaten in Zeichen-C-Daten konvertiert werden, befindet sich die resultierende Zeichenfolge im "jjjj-mm-dd hh:mm:ss[.f...]"-Format, wobei bis zu neun Ziffern für Bruch sekunden verwendet werden können. Dieses Format ist von der Windows-Länder-/Regionseinstellung nicht betroffen. (Mit Ausnahme der Dezimalkomma- und Bruchteilsekunden muss das gesamte Format verwendet werden, unabhängig von der Genauigkeit des SQL-Datentyps für den Zeitstempel.)