Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
Vrátí hodnotu datetimeoffset , která se změní z posunu uloženého časového pásma na zadaný nový posun časového pásma.
Přehled všech Transact-SQL datových typů a funkcí data a času najdete v tématu Datové typy a funkce data a času.
Syntaxe
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Arguments
datetimeoffset_expression
Výraz, který lze přeložit na hodnotu datetimeoffset(n).
timezoneoffset_expression
Výraz ve formátu [+|-]TZH:TZM nebo podepsané celé číslo (v minutách), které představuje posun časového pásma, a předpokládá se, že se jedná o letní světlo a upraví se.
Návratové typy
datetimeoffset s desetinnou přesností argumentu datetimeoffset_expression .
Poznámky
Slouží SWITCHOFFSET k výběru hodnoty datetimeoffset do posunu časového pásma, který se liší od posunu časového pásma, který byl původně uložen.
SWITCHOFFSET neaktualizuje uloženou time_zone hodnotu.
SWITCHOFFSET lze použít k aktualizaci sloupce datetimeoffset .
Použití SWITCHOFFSET s funkcí GETDATE() může způsobit pomalé spuštění dotazu. Důvodem je to, že optimalizátor dotazů nemůže získat přesné odhady kardinality pro hodnotu datetime. Pokud chcete tento problém vyřešit, použijte nápovědu OPTION (RECOMPILE) dotazu k vynucení optimalizátoru dotazů k opětovnému kompilaci plánu dotazu při příštím spuštění stejného dotazu. Optimalizátor pak má přesné odhady kardinality a vytvoří efektivnější plán dotazů. Další informace o nápovědě RECOMPILE k dotazu najdete v nápovědě k dotazům.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Examples
Následující příklad používá SWITCHOFFSET k zobrazení jiného posunu časového pásma než hodnota uložená v databázi.
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