Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Vergleich der Datums- und Uhrzeitdatentypen in SQL Server

Dieser Artikel bietet einen direkten Vergleich der Datums- und Zeitdatentypen in SQL Server hinsichtlich ihres Bereichs, ihrer Genauigkeit und Speichergröße.

Datentyp Bereich Genauigkeit Speichergröße
Datum 0001-01-01

durch

9999-12-31

1 Tag 3 Byte
datetime 1753-01-01

durch

9999-12-31

00:00:00

durch

23:59:59.997

0,00333 Sekunden 8 Byte
datetime2 0001-01-01

durch

9999-12-31

00:00:00

durch

23:59:59.9999999

100 Nanosekunden 6 bis 8 Byte*
datetimeoffset 0001-01-01

durch

9999-12-31

00:00:00

durch

23:59:59.9999999

-14:00

durch

+14:00

100 Nanosekunden 8 bis 10 Byte*
smalldatetime 1900-01-01

durch

2079-06-06

00:00:00

durch

23:59:59

1 Minute 4 Byte
Zeit 00:00:00.0000000

durch

23:59:59.9999999

100 Nanosekunden 3 bis 5 Byte*

* Beachten Sie, dass es sich bei den hier aufgeführten Speichermengen um die in der Microsoft-Dokumentation aufgeführten Mengen handelt. Diese Datentypen verwenden jedoch auch 1 Byte, um die Genauigkeit zu speichern. Fügen Sie daher 1 Byte zu den hier aufgeführten Beträgen hinzu, um ein vollständigeres Bild der Speicheranforderungen zu erhalten.

Beispielsweise die Speichergröße für datetime2 würde von 7 bis 9 Bytes reichen, wenn Sie das zusätzliche Byte einbeziehen.

Konvertieren zwischen diesen Datentypen

Aufgrund der Unterschiede in Genauigkeit und Reichweite zwischen diesen Datentypen müssen Sie beim Konvertieren zwischen ihnen besonders vorsichtig sein. Insbesondere die Konvertierung von einem Typ mit höherer Genauigkeit in einen Typ mit niedrigerer Genauigkeit kann dazu führen, dass ein Teil des Werts verloren geht und der verbleibende Wert aufgerundet wird.

Beispiele finden Sie unter Konvertieren zwischen Datums- und Uhrzeitdatentypen in SQL Server.