SqlHints.com

DateTime2 ist der neue Datentyp, der in SQL Server 2008 zum Speichern von Datums- und Zeitwerten eingeführt wurde. Gemäß MSDN schlägt Microsoft vor, diesen neuen Datentyp für neue Arbeiten anstelle von DateTime zu verwenden.

Die folgende Tabelle fasst einige der Hauptunterschiede zwischen diesem neuen DateTime2-Datentyp und dem alten DateTime-Datentyp zusammen.

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
Speichergröße 8 Bytes 6 bis 8 Bytes
Hinweis: Parameter n ist optional und wenn er nicht angegeben ist, beträgt die Genauigkeit von Bruchteilen
Sekunden 7 Ziffern und kann von 0 bis 7-stellig sein. 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
Aktuelle Datums– und Uhrzeitfunktion GetDate() – Gibt das aktuelle Datum und die Uhrzeit des Datentyps DateTime zurück

Beispiel: SELECT GETDATE()
Ergebnis: 2011-09-16 13:23:18.767

SYSDATETIME()- Es gibt DB Aktuelles Datum und Uhrzeit des Datentyps DateTime2

Beispiel:SELECT SYSDATETIME()
Ergebnis: 2011-09-16 13:23:18.7676720

+/- Tage FUNKTIONIERT

Beispiel:
DECLARE @nowDateTime DATETIME = GETDATE() SELECT @nowDateTime + 1
Ergebnis: 2011-09-17 13: 44:31.247

SCHLÄGT FEHL – Sie müssen nur die Funktion DateAdd verwenden

Beispiel:
DEKLARIEREN SIE @nowDateTime2 DATETIME2=
SYSDATETIME()
WÄHLEN SIE @nowDateTime2+1
Ergebnis: Nachricht 206, Ebene 16, Status 2, Zeile 2
Operandentyp clash: datetime2 ist inkompatibel mit int

DateTime2 mit einer Genauigkeit von Sekundenbruchteilen von 3 entspricht dem Datentyp DateTime. Und DateTime2 (3) verwendet 7 Byte Speicher anstelle von 8 Byte, die der alte DateTime Datentyp verwendet, und es bietet auch einen höheren Datumsbereich (dh. 0001-01-01 bis 9999-12-31 ) im Vergleich zum Datentyp DateTime. Lassen Sie uns dies nun an einem Beispiel sehen:

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

LESEN SIE AUCH

  • Varchar gegen NVarchar
  • Varchar gegen Varchar(MAX)
  • Char gegen Varchar
  • Text gegen Varchar(Max)
  • Union gegen Union All
  • DateTime vs DateTime2
  • SET QUOTED_IDENTIFIER ON vs SET QUOTED_IDENTIFIER OFF
  • Gespeicherte Prozedur vs benutzerdefinierte Funktion
  • Primärschlüssel vs eindeutiger Schlüssel
  • RAISERROR vs THROW
  • Temporäre Tabelle vs Tabellenvariable
  • Len() vs Datalength()
  • Sequenz vs Identität
  • DATEDIFF vs DATEDIFF_BIG
  • LINKER JOIN gegen LINKS ÄUßERER JOIN
  • RECHTER JOIN gegen RECHTER ÄUßERER JOIN
  • JOIN gegen INNEREN JOIN
  • LINKER ÄUßERER JOIN gegen RECHTEN ÄUßEREN JOIN
  • SMALLDATETIME vs DATETIME



Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.