Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Retourneert een datum/tijdoffset-waarde die wordt gewijzigd van de opgeslagen tijdzone-offset in een opgegeven nieuwe tijdzone-offset.
Zie Datum- en tijdgegevenstypen en -functies voor een overzicht van alle Transact-SQL datum- en tijdgegevenstypen en -functies.
Transact-SQL syntaxis-conventies
Syntaxis
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Arguments
datetimeoffset_expression
Een expressie die kan worden omgezet in een datum/tijdoffset(n) -waarde.
timezoneoffset_expression
Een expressie in de notatie [+|-]TZH:TZM of een ondertekend geheel getal (van minuten) dat de tijdzone-offset vertegenwoordigt, en wordt ervan uitgegaan dat deze zomertijdbewust en aangepast is.
Retourtypen
datetimeoffset met de breuknauwkeurigheid van het argument datetimeoffset_expression .
Opmerkingen
Gebruik SWITCHOFFSET deze optie om een datum/tijdoffset-waarde te selecteren in een tijdzoneverschil dat verschilt van de tijdzone-offset die oorspronkelijk is opgeslagen.
SWITCHOFFSET werkt de opgeslagen time_zone waarde niet bij.
SWITCHOFFSET kan worden gebruikt om een datetimeoffset-kolom bij te werken.
Het gebruik met SWITCHOFFSET de functie GETDATE() kan ertoe leiden dat de query langzaam wordt uitgevoerd. Dit komt doordat de queryoptimalisatie geen nauwkeurige kardinaliteitschattingen kan verkrijgen voor de datum/tijd-waarde. Als u dit probleem wilt oplossen, gebruikt u de OPTION (RECOMPILE) queryhint om de queryoptimalisatie te dwingen een queryplan opnieuw te compileren wanneer dezelfde query de volgende keer wordt uitgevoerd. De optimizer heeft vervolgens nauwkeurige kardinaliteitschattingen en produceert een efficiƫnter queryplan. Zie Hints voor query's voor meer informatie over de RECOMPILE queryhint.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Voorbeelden
In het volgende voorbeeld wordt een SWITCHOFFSET andere tijdzone-offset weergegeven dan de waarde die is opgeslagen in de database.
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