In SQL Server transact-sql SYSDATETIMEOFFSET()
Funktion gibt ein datetimeoffset(7) zurück -Wert, der das Datum und die Uhrzeit des Computers enthält, auf dem die Instanz von SQL Server ausgeführt wird. Dieser Wert enthält den Zeitzonen-Offset.
Anwendungsbeispiele unten.
Syntax
Die Syntax lautet wie folgt:
SYSDATETIMEOFFSET ( )
Also rufen Sie die Funktion einfach ohne Argumente auf.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT SYSDATETIMEOFFSET() AS Result;
Ergebnis:
Result ---------------------------------- 2018-06-17 09:55:27.3221853 +10:00
Extrahieren des Zeitzonen-Offsets
Sie können den DATEPART()
verwenden -Funktion, um den Zeitzonen-Offset zurückzugeben. Diese Funktion gibt eine Ganzzahl zurück, die den Zeitzonenoffset in Minuten darstellt.
Beispiel:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';
Ergebnis:
Date/time TZ Offset ---------------------------------- ----------- 2018-06-17 10:04:23.2316409 +10:00 600
Sie können auch die Funktion FORMAT() verwenden, um den Zeitzonenoffset als Zeichenfolge zurückzugeben. Insbesondere können Sie das z
verwenden , zz
, und/oder zzz
Argumente, um es im erforderlichen Format zurückzugeben.
Beispiel:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz', FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';
Ergebnis:
Date/time zz zzz ---------------------------------- -------------- -------------- 2018-06-17 10:27:33.7314840 +10:00 +10 +10:00
Konvertierung des Rückgabewerts
Sie können auch Funktionen wie CONVERT()
verwenden um den Rückgabewert in einen anderen Datentyp umzuwandeln. Hier ist ein Beispiel, wo ich es in ein Datum umwandle Wert und eine Zeit Wert:
SELECT CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date', CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';
Ergebnis:
Date Time ---------- ---------------- 2018-06-17 10:08:29.6377947
Sobald wir das tun, verlieren wir natürlich den Zeitzonen-Offset.
Siehe auch TODATETIMEOFFSET()
wodurch Sie ein datetimeoffset erhalten können Wert von einem datetime2 Ausdruck und SWITCHOFFSET()
wodurch Sie einen Zeitzonen-Offset ändern können.