sql >> Database teknologi >  >> RDS >> Sqlserver

Sammenligning af datatyper for dato og klokkeslæt i SQL Server

Denne artikel giver en side-om-side-sammenligning af datatyperne for dato og klokkeslæt i SQL Server med hensyn til deres rækkevidde, nøjagtighed og lagerstørrelse.

Datatype Rækkevidde Nøjagtighed Opbevaringsstørrelse
dato 0001-01-01

gennem

9999-12-31

1 dag 3 bytes
datotid 1753-01-01

gennem

9999-12-31

00:00:00

gennem

23:59:59.997

0,00333 sekunder 8 bytes
datetime2 0001-01-01

gennem

9999-12-31

00:00:00

gennem

23:59:59.9999999

100 nanosekunder 6 til 8 bytes*
datetime offset 0001-01-01

gennem

9999-12-31

00:00:00

gennem

23:59:59.9999999

-14:00

gennem

+14:00

100 nanosekunder 8 til 10 bytes*
smalldatetime 1900-01-01

gennem

2079-06-06

00:00:00

gennem

23:59:59

1 minut 4 bytes
tid 00:00:00.0000000

gennem

23:59:59.9999999

100 nanosekunder 3 til 5 bytes*

* Bemærk, at lagerbeløbene, der er angivet her, er de beløb, der er angivet i Microsoft-dokumentationen. Disse datatyper bruger dog også 1 byte til at gemme præcisionen. Tilføj derfor 1 byte til de her anførte mængder for at få et mere komplet billede af lagerkravene.

For eksempel lagerstørrelsen for datetime2 vil variere fra 7 til 9 bytes, hvis du inkluderer den ekstra byte.

Konvertering mellem disse datatyper

På grund af forskellene i nøjagtighed og rækkevidde mellem disse datatyper, skal du være ekstra forsigtig, når du konverterer mellem dem. Især kan konvertering fra en type med højere præcision til en type med lavere præcision resultere i, at en del af værdien mistes, og at den resterende værdi rundes op.

Se Konvertering mellem dato og klokkeslæt datatyper i SQL Server for eksempler.


  1. Er det muligt at sammenkæde kolonneværdier i en streng ved hjælp af CTE?

  2. Postgresql opretter ikke db med "createdb" som superbruger, men udsender ikke fejl

  3. Hvordan kan jeg oprette en liste Array med markørdata i Android

  4. Optimering af Microsoft Access med SQL Server IndyPass – 21/5/19