Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Egy datetimeoffset értéket ad vissza, amely a tárolt időzóna eltolásáról egy megadott új időzóna-eltolásra módosul.
Az összes Transact-SQL dátum- és időadattípus és -függvény áttekintése: Dátum és idő adattípusok és függvények.
Transact-SQL szintaxis konvenciók
Szemantika
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Arguments
datetimeoffset_expression
Egy datetimeoffset(n) értékre feloldható kifejezés.
timezoneoffset_expression
[+|-]TZH:TZM vagy aláírt egész szám (perc) formátumban lévő kifejezés, amely az időzóna eltolását jelöli, és amely a nyári időszámítást figyelembe veszi és módosítja.
Visszatérési típusok
datetimeoffset a datetimeoffset_expression argumentum tört pontosságával.
Megjegyzések
SWITCHOFFSET érték kiválasztására használható olyan időzóna-eltolásba, amely eltér az eredetileg tárolt időzóna-eltolástól.
SWITCHOFFSET nem frissíti a tárolt time_zone értéket.
SWITCHOFFSET egy datetimeoffset oszlop frissítésére használható.
A SWITCHOFFSET függvény GETDATE() használata a lekérdezés lassú futtatását okozhatja. Ennek az az oka, hogy a lekérdezésoptimalizáló nem tud pontos számossági becslést beolvasni a datetime értékhez. A probléma megoldásához a OPTION (RECOMPILE) lekérdezési tipp használatával kényszerítse a lekérdezésoptimalizálót egy lekérdezésterv újrafordítására, amikor legközelebb ugyanazt a lekérdezést végrehajtja. Az optimalizáló ezután pontos számosságbecslésekkel rendelkezik, és hatékonyabb lekérdezési tervet hoz létre. A lekérdezési tippről további információt a RECOMPILELekérdezési tippek című témakörben talál.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Példák
Az alábbi példa SWITCHOFFSET az adatbázisban tárolt értékétől eltérő időzóna-eltolást jelenít meg.
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