ti-enxame.com

Obtendo deslocamento do datetimeoffset no SQL Server

No SQL Server, preciso encontrar o deslocamento de uma determinada datetimeoffset(7).

Pesquisei a documentação e há todas as maneiras de alterar o deslocamento, mas não há uma maneira de saber o deslocamento de um valor específico (desculpe se eu o perdi).

Bem, eu vim com o seguinte trecho de código que acho muito complicado, embora pareça funcionar.

DECLARE @datetimeOffset datetimeoffset(7)

SET @datetimeOffset = CAST('2007-05-08 22:35:29.1234567-05:00' AS datetimeoffset(7))

DECLARE @result datetimeoffset(7)
DECLARE @offsetMin int

SET @offsetMin = DATEDIFF(mi, cast(SWITCHOFFSET(@datetimeOffset, '+00:00') as datetime), cast(@datetimeOffset as datetime)) 

SELECT @offsetMin

Ainda preciso fazer a conversão para o formato +00: 00, mas queria verificar se há uma maneira melhor de fazer isso.

Obrigado!

25
user2105237

A função datepart possui uma opção tz, que é o deslocamento do fuso horário em minutos.

datepart(tz,@datetimeoffset)
41
Kenneth Fisher