SqlHints.com
DateTime2 är den nya datatypen som introducerades i Sql Server 2008 för lagring av datum-och tidsvärde. Enligt MSDN föreslår Microsoft att använda den här nya datatypen för nytt arbete istället för DateTime.
Följande tabell sammanfattar några av de stora skillnaderna mellan denna nya DateTime2 och den gamla DateTime-datatypen.
DateTime | DateTime2 | |
Min Value | 1753-01-01 00:00:00 | 0001-01-01 00:00:00 |
Max Value | 9999-12-31 23:59:59.997 | 9999-12-31 23:59:59.9999999 |
lagringsstorlek | 8 byte | 6 till 8 byte Obs: Parameter n är valfri och om den inte anges är fraktionerad sekunder precision är 7 siffra och det kan vara från 0 till 7 siffra. For fractional seconds precision <3, takes 6 bytes For fractional seconds precision 3 or 4 it will take 7 bytes For fractional seconds precision >4 it will take 8 bytes |
Usage | Declare @now datetime | Declare @now datetime2(7) |
Compliance | Is not an ANSI/ISO compliant | Is an ANSI/ISO compliant |
aktuellt datum och tid funktion | GetDate() – det returnerar DB aktuellt datum och tid för DateTime datatyp
exempel: välj GETDATE() |
sysdatetime()– det returnerar db aktuellt datum och tid för datetime2 datatyp
exempel:välj sysdatetime() |
+/- dagar | fungerar
exempel: |
misslyckas – behöver bara använda DateAdd-funktionen
exempel: |
DATETIME2 med fraktionerad sekunder precision av 3 är samma som datetime datatyp. Och DateTime2 (3) använder 7 byte lagring i stället för 8 byte som gamla DateTime datatyp använder och det ger också högre datumintervall (dvs. 0001-01-01 till 9999-12-31) jämfört med DateTime datatyp. Låt oss nu se detta med ett exempel:
DECLARE @nowDateTime DATETIME = GETDATE(), @nowDateTime2 DATETIME2(3)= SYSDATETIME()SELECT DATALENGTH(@nowDateTime) 'DateTime Storage Size', DATALENGTH(@nowDateTime2) 'DateTime2(3) Storage Size'
Result:DateTime Storage Size DateTime2 Storage Size --------------------- ---------------------- 8 7
Läs också
- Varchar vs NVarchar
- varchar vs Varchar(MAX)
- Char vs Varchar
- Text vs Varchar(Max)
- Union vs Union alla
- datetime vs datetime2
- ange quoted_identifier på vs set quoted_identifier off
- lagrad procedur vs användardefinierad funktion
- primärnyckel vs unik nyckel
- raiserror vs kasta
- tillfällig tabell vs tabellvariabel
- len() vs datalength()
- sekvens vs identitet
- datediff vs datediff_big
- vänster gå med vs vänster Yttre anslutning
- höger anslutning mot höger yttre anslutning
- gå med mot inre anslutning
- vänster yttre anslutning mot höger yttre anslutning
- SMALLDATETIME vs DATETIME