Database
 sql >> Datenbank >  >> RDS >> Database

So erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit (ohne Zeitzone) in T-SQL

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