У меня есть большая таблица с значениями DateTime, которые нужно преобразовать в DateTimeOffset.Pure SQL-решение для преобразования исторических значений DateTime в DateTimeOffset?
Я могу сделать это, используя следующий оператор, который сохраняет дату/время и добавляет смещение текущего часового пояса.
TODATETIMEOFFSET([StatisticDateUTC], DATENAME(tz, SYSDATETIMEOFFSET()))
Проблема некоторые из этих значений представляют собой финики лет назад, некоторые в летнее время, некоторые нет, так что на самом деле это неправильно поставить тока смещения во всех из них. Некоторые из них должны иметь смещение -700, у кого-то должно быть смещение -800.
Если часовой пояс был согласован для всех значений, как я могу получить правильное смещение? Я знаю, как это можно сделать в .net, так как для этого есть хороший набор функций, но мне нужно чистое решение sql, никаких функций CLR.