Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Banco de Dados SQL do Azure Synapse Analytics
no Microsoft Fabric
Retorna um valor datetimeoffset que é alterado do deslocamento de fuso horário armazenado para um novo deslocamento de fuso horário especificado.
Para obter uma visão geral de todos os tipos e funções de dados de data e hora Transact-SQL, consulte Tipos e funções de dados de data e hora.
Transact-SQL convenções de sintaxe
Sintaxe
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Arguments
datetimeoffset_expression
Uma expressão que pode ser resolvida para um valor datetimeoffset(n ).
timezoneoffset_expression
Uma expressão no formato [+|-]TZH:TZM ou um inteiro assinado (de minutos) que representa o deslocamento de fuso horário e é considerado consciente e ajustado para o horário de verão.
Tipos de devolução
datetimeoffset com a precisão fracionada do argumento datetimeoffset_expression .
Observações
Use SWITCHOFFSET para selecionar um valor datetimeoffset em um deslocamento de fuso horário que seja diferente do deslocamento de fuso horário que foi originalmente armazenado.
SWITCHOFFSET não atualiza o valor de time_zone armazenado.
SWITCHOFFSETPode ser usado para atualizar uma coluna DateTimeOffset.
Usar SWITCHOFFSET com a função GETDATE() pode fazer com que a consulta seja executada lentamente. Isso ocorre porque o otimizador de consulta não consegue obter estimativas precisas de cardinalidade para o valor datetime. Para resolver esse problema, use a dica OPTION (RECOMPILE) de consulta para forçar o otimizador de consulta a recompilar um plano de consulta na próxima vez que a mesma consulta for executada. O otimizador tem estimativas de cardinalidade precisas e produz um plano de consulta mais eficiente. Para obter mais informações sobre a dica de consulta, consulte RECOMPILE consulta.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Examples
O exemplo a seguir usa SWITCHOFFSET para exibir um deslocamento de fuso horário diferente do valor armazenado no banco de dados.
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