我有以下内容:
class Atom(Base):
__tablename__ = 'atom'
id = Column( Integer, primary_key=True)
date = Column( Date, nullable=False, doc="date on which delivery occurred" )`
我查看发送的sql,我看到以下日期
'date':datetime.datetime(2016, 3, 1, 0, 0, tzinfo=tzutc())
所以当我通过2016-03-01并查看db时,我会看到2016-02-29
如何阻止sqlachemy为日期类型添加tzinfo?
答案 0 :(得分:0)
解决方案是:
date = Column(DateTime(timezone=False),
nullable=False,
doc="date on which delivery occurred"
)
根据SQLAlchemy Changelog,你可以用这种方式切换时区:
将“timezone = True”标志添加到DateTime和Time类型。 postgres到目前为止 将它转换为“TIME [STAMP](WITH | WITHOUT)TIME ZONE”,这样 控制时区存在更可控(psycopg2返回 使用tzinfo的日期时间(如果可用),这可能会造成混淆 反对没有的日期时间。
另一种选择是设置特定时区,解释为here。