SqlHints.com

DateTime2 er den nye datatype introduceret i Server 2008 til lagring af dato og klokkeslæt værdi. I henhold til MSDN foreslår Microsoft at bruge denne nye datatype til nyt arbejde i stedet for DateTime.

følgende tabel opsummerer nogle af de største forskelle mellem denne nye DateTime2 og den gamle DateTime-datatype.

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
lagringsstørrelse 8 Bytes 6 til 8 bytes
Bemærk: Parameter n er valgfri, og hvis det ikke er angivet, så er det ikke nødvendigt, at du ikke har fraktioneret
sekunder præcision er 7-cifret, og det kan være fra 0 til 7-cifret. 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
Aktuel dato og klokkeslæt funktion GetDate() – det returnerer DB nuværende dato og klokkeslæt for DateTime datatype

eksempel: vælg GETDATE()
resultat: 2011-09-16 13:23:18.767

sysdatetime()– det returnerer db nuværende dato og klokkeslæt for datetime2 datatype

eksempel:vælg sysdatetime()
resultat: 2011-09-16 13:23:18.7676720

+/- dage arbejder

eksempel:
erklære @nudatetime datetime = getdate() vælg @Nudatetime + 1
resultat: 2011-09-17 13:44:31.247

mislykkes – behøver kun at bruge DateAdd-funktion

eksempel:
erklære @nudatetime2 DATETIME2=
SYSDATETIME()
Vælg @nudatetime2+1
resultat: Msg 206, niveau 16, stat 2, linje 2
operand type Clash: datetime2 er uforenelig med int

DATETIME2 med fraktioneret sekunder præcision på 3 er samme som datetime datatype. Og DateTime2 (3) bruger 7 bytes lagerplads i stedet for 8 byte, som old DateTime datatype bruger, og det giver også højere datointerval (dvs. 0001-01-01 til 9999-12-31) sammenlignet med DateTime datatype. Lad os nu se dette med et eksempel:

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 OGSÅ

  • Varchar vs NVarchar
  • varchar vs Varchar(maks)
  • Char vs Varchar
  • tekst vs Varchar(maks)
  • Union vs union alle

  • datetime vs datetime2
  • sæt cited_identifier on vs set cited_identifier off
  • gemt procedure vs brugerdefineret funktion
  • primær nøgle vs unik nøgle
  • raiserror vs kaste
  • midlertidig tabel vs tabelvariabel
  • len() vs datalængde ()
  • sekvens vs identitet
  • datediff vs datediff_big
  • Left Join vs left Ydre JOIN
  • højre JOIN vs højre ydre JOIN
  • JOIN vs indre JOIN
  • venstre ydre JOIN vs højre ydre JOIN
  • SMALLDATETIME vs DATETIME



Skriv et svar

Din e-mailadresse vil ikke blive publiceret.