SqlHints.com

DateTime2 is het nieuwe gegevenstype geà ntroduceerd in Sql Server 2008 voor het opslaan van datum en Tijd Waarde. Volgens MSDN stelt Microsoft voor om dit nieuwe gegevenstype te gebruiken voor nieuw werk in plaats van DateTime.

volgende tabel geeft een samenvatting van enkele van de belangrijkste verschillen tussen deze nieuwe DateTime 2 en het oude datetime gegevenstype.

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
opslaggrootte 8 Bytes 6 tot 8 bytes
opmerking: Parameter n is optioneel en als deze niet wordt gespecificeerd, is de fractionele nauwkeurigheid van
seconden 7 cijfers en kan van 0 tot 7 zijn digit. 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
Huidige functie Datum en Tijd GetDate() – Het DB geeft de Huidige Datum en Tijd van het gegevenstype DateTime

Voorbeeld: SELECTEER GETDATE()
Resultaat: 2011-09-16 13:23:18.767

SYSDATETIME()– Het DB geeft de Huidige Datum en Tijd van DateTime2-gegevenstype

Voorbeeld:SELECTEER SYSDATETIME()
Resultaat: 2011-09-16 13:23:18.7676720

+/- dagen WERKEN

Voorbeeld:
VERKLAREN @nowDateTime DATETIME = GETDATE() SELECTEER @nowDateTime + 1
Resultaat: 2011-09-17 13:44:31.247

UITVALT, Moet alleen functie DateAdd

Voorbeeld:
VERKLAREN @nowDateTime2 DATETIME2 – =
SYSDATETIME()
SELECT @nowDateTime2+1
Resultaat: Msg 206, 16, Niveau 2, Regel 2
Operand type conflict: datetime2-niet compatibel is met int

DateTime2-met fracties van seconden precisie van 3 is hetzelfde als het gegevenstype DateTime. En datetime 2 (3) gebruikt 7 bytes van opslag in plaats van 8 byte die oude DateTime datatype gebruikt en het biedt ook een hoger datumbereik (d.w.z. 0001-01-01 tot 9999-12-31) vergeleken met DateTime gegevenstype. Laten we dit nu eens bekijken met een voorbeeld:

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

LEES OOK

  • Varchar vs NVarchar
  • Varchar vs Varchar(MAX)
  • Char versus Varchar
  • Tekst vs Varchar(Max)
  • Unie vs Unie Alle
  • DateTime vs DateTime2 –
  • SET QUOTED_IDENTIFIER ON vs SET QUOTED_IDENTIFIER OFF
  • Opgeslagen Procedure vs door de Gebruiker Gedefinieerde Functie
  • Primaire Sleutel vs Unieke Sleutel
  • RAISERROR vs GOOIEN
  • Tijdelijke Tabel vs Tabel Variabele
  • Len() vs Datalength()
  • Volgorde vs Identiteit
  • DATEDIFF vs DATEDIFF_BIG
  • LEFT JOIN vs LINKS OUTER JOIN
  • RIGHT JOIN vs RIGHT OUTER JOIN
  • JOIN vs INNER JOIN
  • LEFT OUTER JOIN vs RIGHT OUTER JOIN
  • SMALLDATETIME vs DateTime



Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.