Problem:
Sie möchten das aktuelle Datum und die aktuelle Uhrzeit in T-SQL erhalten, aber Sie möchten keinen Zeitzonen-Offset.
Lösung:
Wir verwenden GETDATE(), CURRENT_TIMESTAMP und SYSDATETIME(), um das aktuelle Datum und die aktuelle Uhrzeit ohne den Zeitzonenoffset zu erhalten. Die ersten beiden Funktionen ermöglichen es uns, die aktuelle Zeit mit einer geringeren Genauigkeit zu erhalten. (GETDATE() ist eine T-SQL-Funktion, während CURRENT_TIMESTAMP eine SQL-Standardfunktion ist; beide Funktionen geben denselben Datentyp zurück). Die dritte Funktion, SYSDATETIME(), erhält eine Zeit mit höherer Genauigkeit.
SELECT CURRENT_TIMESTAMP ;
Hier ist das Ergebnis der Abfrage:
2019-08-14 10:01:06.983
Diskussion:
In einer SQL Server-Datenbank der CURRENT_TIMESTAMP
-Funktion gibt das aktuelle Datum und die Uhrzeit (d. h. die Uhrzeit auf dem Computer, auf dem diese SQL Server-Instanz ausgeführt wird) als datetime
zurück Datentyp. Datetime
ist eine Zeit mit geringerer Genauigkeit, die maximal drei Sekundenbruchteile hat. (In unserem Beispiel ist dies 983.)
GETDATE() ähnelt dem CURRENT_TIMESTAMP
und gibt das gleiche Ergebnis zurück. Der Unterschied besteht darin, dass CURRENT_TIMESTAMP
ist SQL-Standard, während GETDATE() spezifisch für SQL Server ist.
SELECT GETDATE() ;
Wenn Sie das aktuelle Datum und die Uhrzeit ohne Zeitzonenoffset mit höherer Genauigkeit erhalten möchten, können Sie natürlich die Funktion SYSDATETIME() verwenden. Diese Funktion gibt ein datetime2
zurück Datentyp mit sieben Sekundenbruchteilen. Sehen Sie sich das folgende Beispiel an:
SELECT SYSDATETIME() ;
Hier ist das Ergebnis:
2019-08-14 10:01:06.9754163