Convertendo para um deslocamento de data
Além de SWITCHOFFSET(), podemos usar TODATETIMEOFFSET() para transformar uma data existente em um tipo de data com deslocamento. Se nossa hora inicial estiver em UTC, precisaremos corrigir o fuso horário e, em seguida, acrescentar um deslocamento. Para corrigir o fuso horário, podemos adicionar ou subtrair horas (e minutos) manualmente.
A cerimônia de encerramento dos Jogos Olímpicos de Verão de 2016 no Rio de Janeiro começou às 23h UTC em 21 de agosto de 2016. Partindo de uma string contendo essa data e hora, podemos ver que horas eram em outros locais. Para o horário em Phoenix, Arizona, você sabe que eles seguem Mountain Standard Time, que é UTC -7 o ano todo. O arquipélago de Tuvalu tem seu próprio horário, que fica 12 horas à frente do UTC.
Este exercício faz parte do curso
Análise de Séries Temporais no SQL Server
Instruções do exercício
- Preencha o horário em Phoenix, Arizona, que, por estar em Mountain Standard Time, era UTC -07:00.
- Preencha o horário para Tuvalu, que fica 12 horas à frente do UTC.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
DECLARE
@OlympicsClosingUTC DATETIME2(0) = '2016-08-21 23:00:00';
SELECT
-- Fill in 7 hours back and a '-07:00' offset
___(DATEADD(HOUR, -___, @OlympicsClosingUTC), '___') AS PhoenixTime,
-- Fill in 12 hours forward and a '+12:00' offset.
___(DATEADD(HOUR, ___, @OlympicsClosingUTC), '___') AS TuvaluTime;