SqlHints.com

DateTime2 jest nowym typem danych wprowadzonym w Sql Server 2008 do przechowywania wartości daty i czasu. Zgodnie z MSDN, Microsoft sugeruje użycie tego nowego typu danych do nowej pracy zamiast DateTime.

Poniższa tabela podsumowuje niektóre z głównych różnic między nowym typem danych DateTime2 a starym typem danych 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
rozmiar pamięci 8 bajtów 6 do 8 bajtów
Uwaga: parametr n jest opcjonalny, a jeśli nie jest określony,
dokładność sekundowa wynosi 7 cyfr i może wynosić od 0 do 7 cyfr. 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
bieżąca funkcja daty i czasu GetDate() – zwraca dB bieżącą datę i czas typu danych DateTime

przykład: SELECT GETDATE()
wynik: 2011-09-16 13:23:18.767

sysdatetime()– zwraca dB bieżącą datę i czas typu danych datetime2

przykład:select sysdatetime()
wynik: 2011-09-16 13:23:18.7676720

+/- days działa

przykład:
declare @nowdatetime DateTime = getdate() select @nowdatetime + 1
wynik: 2011-09-17 13:44:31.247

FAILS – Need to use only DateAdd function

Example:
DECLARE @nowDateTime2 DATETIME2=
SYSDATETIME()
SELECT @nowDateTime2+1
Result: Msg 206, Level 16, State 2, Line 2
zderzenie typów operandów: datetime2 jest niezgodne z int

datetime2 z ułamkową dokładnością sekund 3 jest taki sam jak typ danych datetime. A DateTime2 (3) używa 7 bajtów pamięci zamiast 8 bajtów, których używa Stary DateTime datatype, a także zapewnia wyższy zakres dat (np. 0001-01-01 do 9999-12-31) w porównaniu do typu danych DateTime. Zobaczmy to na przykładzie:

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

przeczytaj również

  • Varchar vs NVarchar
  • VARCHAR vs VARCHAR(MAX)
  • Char vs Varchar
  • tekst vs VARCHAR(Max)
  • Unia vs union wszystkie
  • DateTime vs datetime2
  • set quoted_identifier on vs set quoted_identifier off
  • procedura składowana vs funkcja zdefiniowana przez użytkownika
  • klucz podstawowy vs unikalny klucz
  • RAISERROR vs throw
  • tymczasowa tabela vs zmienna tabeli
  • Len() vs Datalength()
  • Sekwencja vs tożsamość
  • datediff vs datediff_big
  • LEFT JOIN vs Left Zewnętrzne połączenie
  • prawe połączenie vs prawe połączenie zewnętrzne
  • połączenie vs wewnętrzne połączenie
  • lewe połączenie zewnętrzne vs prawe połączenie zewnętrzne
  • SMALLDATETIME vs DATETIME



Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.