Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Zwraca wartość datetimeoffset , która jest zmieniana z przechowywanego przesunięcia strefy czasowej na określone nowe przesunięcie strefy czasowej.
Aby zapoznać się z omówieniem wszystkich Transact-SQL typów i funkcji danych daty i godziny, zobacz Typy i funkcje danych daty i godziny.
Transact-SQL konwencje składni
Składnia
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Arguments
datetimeoffset_expression
Wyrażenie, które można rozpoznać jako wartość datetimeoffset(n).
timezoneoffset_expression
Wyrażenie w formacie [+|-]TZH:TZM lub podpisana liczba całkowita (w minutach) reprezentująca przesunięcie strefy czasowej i przyjmuje się, że jest uwzględniana i dostosowywana.
Typy zwracane
datetimeoffset z ułamkową dokładnością argumentu datetimeoffset_expression .
Uwagi
Użyj SWITCHOFFSET polecenia , aby wybrać wartość datetimeoffset do przesunięcia strefy czasowej, która różni się od przesunięcia strefy czasowej, która została pierwotnie zapisana.
SWITCHOFFSET nie aktualizuje przechowywanej wartości time_zone .
SWITCHOFFSET Może służyć do aktualizowania kolumny datetimeoffset .
Użycie funkcji SWITCHOFFSET może GETDATE() spowodować spowolnienie działania zapytania. Dzieje się tak, ponieważ optymalizator zapytań nie może uzyskać dokładnych oszacowań kardynalności dla wartości daty/godziny. Aby rozwiązać ten problem, użyj OPTION (RECOMPILE) wskazówki dotyczącej zapytania, aby wymusić ponowne skompilowanie planu zapytania przy następnym wykonaniu tego samego zapytania. Optymalizator ma dokładne oszacowania kardynalności i generuje bardziej wydajny plan zapytań. Aby uzyskać więcej informacji na temat RECOMPILE wskazówki dotyczącej zapytania, zobacz Wskazówki dotyczące zapytań.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Przykłady
W poniższym przykładzie użyto SWITCHOFFSET metody do wyświetlenia innego przesunięcia strefy czasowej niż wartość przechowywana w bazie danych.
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