Freigeben über


Verbesserungen bei Datum und Uhrzeit

In diesem Thema wird die SQL Server Native Client Unterstützung für die Datums- und Uhrzeitdatentypen beschrieben, die in SQL Server 2008 hinzugefügt wurden.

Weitere Informationen zu Datums-/Uhrzeitverbesserungen finden Sie unter Verbesserungen an Datum und Uhrzeit (OLE DB) und Verbesserungen an Datum und Uhrzeit (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 wird durch die erweiterte Unterstützung für Datums-/Uhrzeittypen die Verwendung des SQL_TYPE_DATE ODBC-Typs (SQL_DATE für ODBC 2.0-Anwendungen) und des DBTYPE_DBDATE OLE DB-Typs effizienter.

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, die eine Genauigkeit von lediglich 1/300 Sekunde erwarten. 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, und solche Anwendungen erwarten nur eine Genauigkeit von 3 Millisekunden. Der neue datetime2(3) Typ ist nicht direkt mit dem vorhandenen datetime Typ kompatibel. 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 werden auf konsistente Weise erweitert, um Konvertierungen zwischen allen Datums- und Uhrzeittypen einzuschließen, die in SQL Server 2008 eingeführt wurden.

Weitere Informationen

SQL Server Native Client-Funktionen