Получение смещения datetimeoffset в SQL Server

В SQL Server мне нужно найти смещение заданного datetimeoffset(7).

Я изучил документацию, и есть все способы изменить смещение, но не способ узнать смещение определенного значения (извините, если я пропустил его).

Ну, я придумал следующий фрагмент кода, который я считаю слишком сложным, хотя, похоже, работает.

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

Мне все же нужно сделать преобразование в формат +00: 00, но мне нужно проверить, есть ли лучший способ сделать это.

Спасибо!

Ответы

Ответ 1

Функция datepart имеет параметр tz, который является смещением часового пояса в минутах.

datepart(tz,@datetimeoffset)