Verbesserungen für Datum/Uhrzeit

Dieses Thema beschreibt die SQL Server Native Client-Unterstützung der neuen Datums- und Uhrzeitdatentypen, die in SQL Server 2008 hinzugefügt wurden.

Weitere Informationen zu Verbesserungen hinsichtlich Datum und Zeit finden Sie unter Datums-/Uhrzeitverbesserungen (OLE DB) und Datums-/Uhrzeitverbesserungen (ODBC).

Informationen zu Beispielanwendungen, die diese Funktion veranschaulichen, finden Sie unter Programmierbeispiele für SQL Server-Daten.

Verwendung

In den folgenden Abschnitten werden verschiedene Methoden zur Verwendung der neuen Datums- und Uhrzeittypen beschrieben.

Verwenden von 'Date' als eindeutigen Datentyp

Ab SQL Server 2008 ist die Verwendung des SQL_TYPE_DATE ODBC-Typs (SQL_DATE für ODBC 2.0-Anwendungen) und des DBTYPE_DBDATE OLE DB-Typs durch die verbesserte Unterstützung von Datums- und Zeittypen effizienter geworden.

Verwenden von 'Time' als eindeutigen Datentyp

OLE DB verfügt bereits über einen Datentyp, der nur die Zeit enthält: DBTYPE_DBTIME, der die Zeit mit einer Genauigkeit von 1 Sekunde angibt. In ODBC ist der entsprechende Typ SQL_TYPE_TIME (SQL_TIME für ODBC 2.0-Anwendungen).

Der neue SQL Server-Zeitdatentyp verfügt über eine Genauigkeit in Sekundenbruchteilen von bis zu 100 Nanosekunden. Dies erfordert neue Typen in SQL Server Native Client: DBTYPE_DBTIME2 (OLE DB) und SQL_SS_TIME2 (ODBC). Vorhandene Anwendungen, in denen Zeitdaten nicht in Sekundenbruchteilen angegeben werden, können time(0)-Spalten verwenden. Die vorhandenen OLE DB DBTYPE_TIME- und ODBC SQL_TYPE_TIME-Typen und ihre entsprechenden Strukturen sollten richtig funktionieren, es sei denn, die Anwendungen verlassen sich auf den in den Metadaten zurückgegebenen Typ.

Verwenden von 'Time' als eindeutigen Datentyp mit einer Genauigkeit in Sekundenbruchteilen

Einige Anwendungen, z. B. in der Fertigung und Prozesssteuerung, erfordern die Fähigkeit, Zeitdaten mit einer Genauigkeit von bis zu 100 Nanosekunden zu verarbeiten. Neue Typen für diesen Zweck sind DBTYPE_DBTIME2 (OLE DB) und SQL_SS_TIME2 (ODBC).

Verwenden von 'Datetime' mit einer Genauigkeit in Sekundenbruchteilen

OLE DB definiert bereits einen Typ mit einer Genauigkeit von bis zu 1 Nanosekunde. Dieser Typ wird jedoch bereits von vorhandenen SQL Server-Anwendungen verwendet. Diese Anwendungen erwarten eine Genauigkeit von nur 1/300 Sekunde. Der neue datetime2(3)-Typ ist nicht direkt kompatibel mit dem vorhandenen datetime-Typ. Wenn das Risiko besteht, dass sich dies auf das Verhalten der Anwendung auswirkt, müssen Anwendungen das neue DBCOLUMN-Flag zur Bestimmung des tatsächlichen Servertyps verwenden.

ODBC definiert auch einen Typ mit einer Genauigkeit von bis zu 1 Nanosekunde. Dieser Typ wird jedoch bereits von vorhandenen SQL Server-Anwendungen verwendet. Diese Anwendungen erwarten nur eine Genauigkeit in Millisekunden. Der neue datetime2(3)-Typ ist nicht direkt kompatibel mit dem vorhandenen datetime-Typ. datetime2(3) hat eine Genauigkeit von einer Millisekunde, und datetime hat eine Genauigkeit von 1/300 Sekunde. In ODBC können Anwendungen bestimmen, welcher Servertyp mit dem Deskriptorfeld SQL_DESC_TYPE_NAME verwendet wird. Deshalb kann der vorhandene SQL_TYPE_TIMESTAMP-Typ (SQL_TIMESTAMP für ODBC 2.0-Anwendungen) für beide Typen verwendet werden.

Verwenden von 'Datetime' mit einer Genauigkeit in Sekundenbruchteilen und Zeitzoneninformationen

Einige Anwendungen erfordern datetime-Werte mit Zeitzoneninformationen. Dies wird von den neuen Typen DBTYPE_DBTIMESTAMPOFFSET (OLE DB) und SQL_SS_TIMESTAMPOFFSET (ODBC) unterstützt.

Verwenden von 'Date'-/'Time'-/'Datetime'-/'Datetimeoffset'-Daten mit clientseitigen Konvertierungen in Übereinstimmung mit vorhandenen Konvertierungen

Der ODBC-Standard beschreibt, wie Konvertierungen zwischen vorhandenen Datum-, Zeit- und Timestamp-Typen funktionieren. Diese wurden auf einheitliche Weise erweitert, um in SQL Server 2008 eingeführte Konvertierungen zwischen allen Datums- und Zeittypen einzuschließen.

Siehe auch

Andere Ressourcen

SQL Server Native Client-Funktionen