Я искал все утро и, похоже, не могу справиться с этим (хотя у меня есть несколько возможных теорий). Также не исключено, что это может быть дубликат, но учтите, что все вопросы, которые я искал, не дали однозначного ответа, но были слишком открыты для интерпретации.
В SQL Server (> = 2012), столбце таблицы типа datetime
, хранится ли он независимо от смещения часового пояса или как он работает? Из моего исследования может показаться, что datetimeoffset
это тип, который включает смещение с датой / временем, в то время как datetime
просто пропускает это?
Когда я читаю данные из базы данных и использую CONVERT( datetimeoffset, [My Column] )
, это дает мне 2016-09-21 16:49:54.7170000 +00:00
, когда я и сервер оба в UTC +02: 00, что подтверждает мою веру, я прав?
Я пытаюсь добиться того, чтобы данные были сохранены ОТ различных смещений tz (через функцию), затем сохранены в базе данных в формате UTC и, наконец, преобразовали значение datetime
обратно в (возможно, другое) смещение , Меня не волнует DST / и т. Д., Поскольку браузер пользователя выдаст мне текущее смещение во время сохранения, а пользователь, выполняющий просмотр, выдаст мне смещение tz во время просмотра. Для исторических отчетов точное время суток (зависит от летнего времени) не имеет значения.
В настоящее время в таблицах базы данных уже используется datetime
вместо datetimeoffset
; по моим наблюдениям, вполне нормально продолжать с этим, хотя в какой-то момент было бы неплохо перейти на datetimeoffset
, чтобы потом начать запись исторического смещения tz?
Любая ясность будет принята с благодарностью.