Изменение часового пояса в существующем проекте Django
-
22-08-2019 - |
Вопрос
Как идиот, я совершенно упустил из виду настройку часового пояса, когда впервые создавал приложение, собирающее данные даты и времени.
Тогда это не было проблемой, потому что все, что я делал, это сравнивал и упорядочивал стили «с тех пор».Теперь мне нужно создать полные отчеты, показывающие фактическую дату и время, и, конечно же, все они хранятся в Америке/Чикаго (нелепый стандарт Django).
Так да.У меня есть база данных среднего размера, полная неверных дат.я хочу изменить settings.TIME_ZONE
к 'UTC'
но это не помогает моим существующим данным.
Что лучше (читай:самый простой и быстрый) способ массового преобразования всех данных модели?
(Все данные взяты за последние два месяца, поэтому, к счастью, нет необходимости конвертировать летнее время)
Этот проект в настоящее время находится на SQLite, но у меня есть другой проект на PostgreSQL с аналогичной проблемой, и я, возможно, захочу сделать то же самое до того, как начнется летнее время...Так что в идеале ответ, не зависящий от БД.
Решение
Я бы выполнил массовое обновление таблиц базы данных, добавив или вычитая часы из полей даты и времени.
Нечто подобное работает в SQL Server и добавляет к дате 2 часа:
update tblName set date_field = dateadd("hh", 2, data_field)