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() |
SYSDATETIME()- Es gibt DB Aktuelles Datum und Uhrzeit des Datentyps DateTime2
Beispiel:SELECT SYSDATETIME() |
+/- Tage | FUNKTIONIERT
Beispiel: |
SCHLÄGT FEHL – Sie müssen nur die Funktion DateAdd verwenden
Beispiel: |
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