Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comparaison des types de données de date et d'heure dans SQL Server

Cet article fournit une comparaison côte à côte des types de données de date et d'heure dans SQL Server en ce qui concerne leur plage, leur précision et leur taille de stockage.

Type de données Plage Précision Taille de stockage
date 0001-01-01

par

9999-12-31

1 jour 3 octets
dateheure 1753-01-01

par

9999-12-31

00:00:00

par

23:59:59.997

0,00333 seconde 8 octets
datetime2 0001-01-01

par

9999-12-31

00:00:00

par

23:59:59.9999999

100 nanosecondes 6 à 8 octets*
datetimeoffset 0001-01-01

par

9999-12-31

00:00:00

par

23:59:59.9999999

-14:00

par

+14:00

100 nanosecondes 8 à 10 octets*
smalldatetime 1900-01-01

par

2079-06-06

00:00:00

par

23:59:59

1 minute 4 octets
heure 00:00:00.0000000

par

23:59:59.9999999

100 nanosecondes 3 à 5 octets*

* Notez que les quantités de stockage répertoriées ici sont les quantités répertoriées dans la documentation Microsoft. Cependant, ces types de données utilisent également 1 octet pour stocker la précision. Par conséquent, ajoutez 1 octet aux quantités indiquées ici pour obtenir une image plus complète des besoins de stockage.

Par exemple, la taille de stockage pour datetime2 serait compris entre 7 et 9 octets si vous incluez l'octet supplémentaire.

Conversion entre les données de ces types

En raison des différences de précision et de plage entre ces types de données, vous devez faire très attention lors de la conversion entre eux. En particulier, la conversion d'un type de précision supérieure en un type de précision inférieure peut entraîner la perte d'une partie de la valeur et la valeur restante étant arrondie.

Consultez Conversion entre les types de données de date et d'heure dans SQL Server pour obtenir des exemples.