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:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL 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