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() |
sysdatetime()– zwraca dB bieżącą datę i czas typu danych datetime2
przykład:select sysdatetime() |
+/- days | działa
przykład: |
FAILS – Need to use only DateAdd function
Example: |
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