我什么时候应该使用DateTime(timezone = True)和TIMESTAMP(timezone = True)?

时间:2019-04-21 19:13:29

标签: python python-3.x datetime sqlalchemy

说我想使用SQLAlchemy在数据库中存储感知的datetime(即带有时区偏移量的时间戳),并且我希望它可以与多种类型的关系数据库(SQLite,PostgreSQL,MySQL)一起用于Just Work™ ,Oracle等)。 SQLAlchemy为此提供了两种类型:DateTime及其子类TIMESTAMP。两者都采用可选的timezone参数,可以将其设置为True以便存储时区感知值。但是,我不清楚这两种类型之间的区别是什么,为什么/何时应该在另一种之上使用。

有趣的是,DateTime文档说:

  

要支持时区,请至少使用TIMESTAMP数据类型(如果不是特定于方言的数据类型对象)。

     

[关于timezone参数:]使用此标志时,建议直接使用TIMESTAMP数据类型,因为某些数据库包含与时区不同的单独的通用日期/时间持有类型支持的TIMESTAMP数据类型,例如Oracle。

...提出了一个问题,如果我应该使用TIMESTAMP,那么DateTime的作用是什么?使用错误的列类型究竟会导致什么错误?

0 个答案:

没有答案
相关问题