SqlHints.com

DateTime2 Er den nye Datatypen introdusert I Sql Server 2008 for lagring Av Dato og Klokkeslett verdi. I HENHOLD TIL MSDN Foreslår Microsoft å bruke denne nye Datatypen for nytt arbeid i stedet For DateTime.

Følgende tabell oppsummerer noen av de store forskjellene mellom denne nye DateTime2 Og den gamle 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
Lagringsstørrelse 8 Byte 6 til 8 byte
Merk: Parameter n er valgfri, og hvis den ikke er spesifisert så fraksjonert
sekunder presisjon er 7 siffer og det kan være fra 0 til 7 siffer. 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
Gjeldende Dato og Klokkeslett funksjon GetDate() – Den returnerer DB Gjeldende Dato og Klokkeslett For Datetime Datatype

Eksempel: VELG GETDATE()
Resultat: 2011-09-16 13:23:18.767

sysdatetime()– den returnerer db gjeldende dato og klokkeslett for datetime2 datatype

eksempel:velg sysdatetime()
Resultat: 2011-09-16 13:23:18.7676720

+/- dager fungerer

eksempel:
erklære @nowdatetime datetime = getdate() velg @nowdatetime + 1
RESULTAT: 2011-09-17 13:44:31.247

MISLYKKES – Må bare Bruke DateAdd-funksjonen

Eksempel:
ERKLÆRE @nowDateTime2 DATETIME2=
SYSDATETIME()
VELG @nowDateTime2+1
Resultat: Msg 206, Nivå 16, Tilstand 2, linje 2
operand type sammenstøt: datetime2 er inkompatibel med int

DATETIME2 med brøk sekunder PRESISJON PÅ 3 er samme som datetime DATATYPE. Og DateTime2(3) bruker 7 byte lagringsplass i stedet for 8 byte som gamle DateTime datatype bruker, og det gir også høyere datoperiode (dvs. 0001-01-01 til 9999-12-31) sammenlignet Med datatypen DateTime. La oss nå 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

LES også

  • Varchar vs NVarchar
  • Varchar vs Varchar(MAKS)
  • Char vs Varchar
  • Tekst vs Varchar(Maks)
  • union vs union alle
  • datetime vs datetime2
  • sett quoted_identifier på vs sett quoted_identifier av
  • lagret prosedyre vs BRUKERDEFINERT funksjon
  • primærnøkkel vs Unik Nøkkel
  • raiserror vs kast
  • Midlertidig tabell VS tabell variabel
  • Len() Vs datalength()
  • Sekvens vs identitet
  • datediff vs datediff_big
  • venstre bli med mot venstre YTRE SAMMENFØYNING
  • HØYRE SAMMENFØYNING mot HØYRE YTRE SAMMENFØYNING
  • BLI med mot INDRE SAMMENFØYNING
  • VENSTRE YTRE SAMMENFØYNING mot HØYRE YTRE SAMMENFØYNING
  • SMALLDATETIME vs DATETIME



Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.