Python 从datefield到datetimefield的数据迁移
我只是想知道我哪里/哪里做错了。下面是一个场景 我有一个字段Python 从datefield到datetimefield的数据迁移,python,django,django-models,Python,Django,Django Models,我只是想知道我哪里/哪里做错了。下面是一个场景 我有一个字段date=DateField() 我所做的: 添加临时字段temp=DatetimeField(),然后通过数据迁移将值从date=DateField()传输到temp 删除date=DateField() 添加date=DateTimeField() 将存储值从temp传输到date 一切都很顺利,没有错误。但有一件事改变了,值 例如: 旧数据:datetime.date(2014年5月5日) 新数据:datetime.datet
date=DateField()
我所做的:
- 添加临时字段
temp=DatetimeField()
,然后通过数据迁移将值从date=DateField()
传输到temp
- 删除
date=DateField()
- 添加
date=DateTimeField()
- 将存储值从
temp
传输到date
一切都很顺利,没有错误。但有一件事改变了,值
例如:
旧数据:datetime.date(2014年5月5日)
新数据:datetime.datetime(2014,5,4,12,0,tzinfo=UTC)
所以我的问题是,为什么它会改变,并从原始值中减去1天?有什么想法吗?是因为时区的原因吗?时区设置为太平洋/奥克兰
任何帮助都将不胜感激。谢谢 太平洋/奥克兰的GMT偏移量为UTC+12(小时)
datetime.datetime(2014,5,4,12,0,tzinfo=UTC)
表示4日中午UTC。但是由于奥菲的缘故,现在是奥克兰的午夜。然而,奥克兰的午夜实际上是5日的“0小时”
所以,是的,这个问题确实与时区有关,但事实上这不是一个问题。日期没有改变,只是用不同的时区表示
当然,您可以回滚迁移,并在步骤1中将日期
转换为日期时间
,以不同的方式说明时区 多谢各位。为了不丢失原始日期值,您的建议或步骤是什么?