SqlHints.com

DateTime2 este noul tip de date introdus în Sql Server 2008 pentru stocarea valorii datei și orei. Conform MSDN, Microsoft sugerează utilizarea acestui nou tip de date pentru lucrări noi în loc de DateTime.

tabelul următor rezumă unele dintre diferențele majore dintre acest nou DateTime2 și vechiul tip de date DateTime.

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
dimensiunea stocării 8 octeți 6 până la 8 octeți
Notă: parametrul n este opțional și dacă nu este specificat atunci fracționat
secunde de precizie este de 7 cifre și poate fi de la 0 la 7 cifre. 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
data curentă și funcția de timp GetDate() – se întoarce DB data curentă și ora DateTime tip de date

exemplu: selectați GETDATE()
rezultat: 2011-09-16 13:23:18.767

sysdatetime()– se întoarce DB data curentă și ora datetime2 tip de date

exemplu:selectați sysdatetime()
rezultat: 2011-09-16 13:23:18.7676720

+/- zile lucrări

exemplu:
declara @nowdatetime datetime = getdate() selectați @nowdatetime + 1
rezultat: 2011-09-17 13:44:31.247

nu – necesitatea de a utiliza numai funcția DateAdd

exemplu:
declara @nowDateTime2 DATETIME2=
SYSDATETIME()
selectați @nowDateTime2+1
rezultat: Msg 206, nivelul 16, Starea 2, linia 2
tip operand Clash: datetime2 este incompatibil cu int

DATETIME2 cu secunde fracționare precizia 3 este aceeași cu tipul de date datetime. Și DateTime2(3) folosește 7 octeți de stocare în loc de 8 octeți pe care vechiul tip de date DateTime îl folosește și oferă, de asemenea, un interval de date mai mare (adică. 0001-01-01 la 9999-12-31) comparativ cu tipul de date DateTime. Acum, să vedem acest lucru cu un exemplu:

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

citește și

  • Varchar vs NVarchar
  • Varchar vs Varchar(MAX)
  • Char vs Varchar
  • Text vs Varchar(Max)
  • Uniunea vs Uniunea toate
  • datetime vs datetime2
  • set quoted_identifier Pe vs set quoted_identifier off
  • procedură stocată vs funcție definită de utilizator
  • cheie primară vs cheie unică
  • raiserror vs arunca
  • masă temporară vs variabilă de masă
  • Len() vs datalength()
  • secvență vs identitate
  • datediff vs datediff_big
  • stânga alăturați-vă vs stânga Exterior se alăture
  • dreapta se alăture vs exterior dreapta se alăture
  • se alăture vs interior se alăture
  • stânga exterior se alăture vs exterior dreapta se alăture
  • SMALLDATETIME vs DATETIME



Lasă un răspuns

Adresa ta de email nu va fi publicată.