Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Endpoint de análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
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 todas as funções e tipos de dados de data e hora Transact-SQL, consulte funções e tipos de dados de data e hora.
Convenções de sintaxe de Transact-SQL
Sintaxe
SWITCHOFFSET ( datetimeoffset_expression , timezoneoffset_expression )
Argumentos
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 com sinal (de minutos) que representa o deslocamento de fuso horário e é considerado consciente do horário de verão e ajustado.
Tipos de retorno
datetimeoffset com a precisão fracionária do argumento datetimeoffset_expression.
Comentários
Use SWITCHOFFSET para selecionar um valor datetimeoffset em um deslocamento de fuso horário diferente do deslocamento de fuso horário que foi originalmente armazenado.
SWITCHOFFSET não atualiza o valor de time_zone armazenado.
SWITCHOFFSET pode 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 pode obter estimativas de cardinalidade precisas para o valor de data e hora. Para resolver esse problema, use a OPTION (RECOMPILE) dica 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. Em seguida, o otimizador tem estimativas precisas de cardinalidade e produz um plano de consulta mais eficiente. Para obter mais informações sobre a RECOMPILE dica de consulta, consulte dicas de consulta.
DECLARE @dt AS DATETIMEOFFSET = switchoffset(CONVERT (DATETIMEOFFSET, GETDATE()), '-04:00');
SELECT *
FROM t
WHERE c1 > @dt
OPTION (RECOMPILE);
Exemplos
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