Dit artikel biedt een zij-aan-zij vergelijking van de datum- en tijdgegevenstypen in SQL Server met betrekking tot hun bereik, nauwkeurigheid en opslaggrootte.
Gegevenstype | Bereik | Nauwkeurigheid | Opslaggrootte |
---|---|---|---|
datum | 0001-01-01 via 9999-12-31 | 1 dag | 3 bytes |
datumtijd | 1753-01-01 via 9999-12-31 00:00:00 via 23:59:59.999 | 0,00333 seconden | 8 bytes |
datetime2 | 0001-01-01 via 9999-12-31 00:00:00 via 23:59:59.999999 | 100 nanoseconden | 6 tot 8 bytes* |
datetimeoffset | 0001-01-01 via 9999-12-31 00:00:00 via 23:59:59,999999 -14:00 via +14:00 | 100 nanoseconden | 8 tot 10 bytes* |
smalldatetime | 1900-01-01 via 2079-06-06 00:00:00 via 23:59:59 | 1 minuut | 4 bytes |
tijd | 00:00:00.0000000 via 23:59:59.999999 | 100 nanoseconden | 3 tot 5 bytes* |
* Houd er rekening mee dat de hier vermelde opslagbedragen de bedragen zijn die worden vermeld in de Microsoft-documentatie. Deze gegevenstypen gebruiken echter ook 1 byte om de precisie op te slaan. Voeg daarom 1 byte toe aan de hier vermelde hoeveelheden voor een vollediger beeld van de opslagvereisten.
Bijvoorbeeld de opslaggrootte voor datetime2 zou variëren van 7 tot 9 bytes als u de extra byte opneemt.
Omzetten tussen gegevens van deze typen
Vanwege de verschillen in nauwkeurigheid en bereik tussen deze gegevenstypen, moet u extra voorzichtig zijn bij het converteren tussen deze gegevens. Vooral het omzetten van een type met hogere precisie naar een type met lagere precisie kan ertoe leiden dat een deel van de waarde verloren gaat en dat de resterende waarde naar boven wordt afgerond.
Bekijk het converteren tussen datum- en tijdgegevenstypen in SQL Server voor voorbeelden.