Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Gibt einen datetimeoffset-Wert zurück, der von einem gespeicherten Zeitzonenoffset in einen angegebenen neuen Zeitzonenoffset geändert wurde.
Eine Übersicht über alle Transact-SQL Datentypen und Funktionen für Datum und Uhrzeit finden Sie unter Datums- und Uhrzeitdatentypen und -funktionen.
Transact-SQL-Syntaxkonventionen
Syntax
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Argumente
datetimeoffset_expression
Ein Ausdruck, der in einen Datetimeoffset(n) -Wert aufgelöst werden kann.
timezoneoffset_expression
Ein Ausdruck im Format [+|-]TZH:TZM oder eine signierte ganze Zahl (von Minuten), die den Zeitzonenoffset darstellt, und wird angenommen, dass es sich um sommersparende Berücksichtigung und Anpassung handelt.
Rückgabetypen
datetimeoffset mit der Genauigkeit von Bruchteilen des datetimeoffset_expression-Arguments.
Hinweise
Wird verwendet SWITCHOFFSET , um einen Datetimeoffset-Wert in einen Zeitzonenoffset-Offset auszuwählen, der sich von dem ursprünglich gespeicherten Zeitzonenoffset unterscheidet.
SWITCHOFFSET aktualisiert nicht den gespeicherten time_zone Wert.
SWITCHOFFSET kann verwendet werden, um eine Datetimeoffset-Spalte zu aktualisieren.
Die Verwendung SWITCHOFFSET mit der Funktion GETDATE() kann dazu führen, dass die Abfrage langsam ausgeführt wird. Das liegt daran, dass der Abfrageoptimierer keine genauen Kardinalitätsschätzungen für den datetime-Wert abrufen kann. Um dieses Problem zu beheben, verwenden Sie den OPTION (RECOMPILE) Abfragehinweis, um zu erzwingen, dass der Abfrageoptimierer einen Abfrageplan bei der nächsten Ausführung derselben Abfrage neu kompilieren kann. Der Optimierer verfügt dann über genaue Kardinalitätsschätzungen und erzeugt einen effizienteren Abfrageplan. Weitere Informationen zum RECOMPILE Abfragehinweis finden Sie unter Abfragehinweise.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Beispiele
Im folgenden Beispiel wird SWITCHOFFSET verwendet, um einen anderen als den in der Datenbank gespeicherten Zeitzonenoffset-Wert anzuzeigen.
CREATE TABLE dbo.test (ColDatetimeoffset DATETIMEOFFSET);
GO
INSERT INTO dbo.test VALUES ('1998-09-20 7:45:50.71345 -5:00');
GO
SELECT SWITCHOFFSET (ColDatetimeoffset, '-08:00')
FROM dbo.test;
GO
--Returns: 1998-09-20 04:45:50.7134500 -08:00
SELECT ColDatetimeoffset
FROM dbo.test;
--Returns: 1998-09-20 07:45:50.7134500 -05:00