python - 我应该何时使用 DateTime(timezone=True) 以及何时使用 TIMESTAMP(timezone=True)?
问题描述
假设我想datetime
使用 SQLAlchemy 在数据库中存储感知 s(即带有时区偏移的时间戳),并且我希望它能够与尽可能多类型的关系数据库(SQLite、PostgreSQL、MySQL、Oracle 等)一起工作. SQLAlchemy 为此提供了两种类型:DateTime
及其子类TIMESTAMP
。两者都采用一个可选timezone
参数,可以设置为True
以存储时区感知值。但是,我不清楚这两种类型之间的区别是什么,或者为什么/何时应该使用一种而不是另一种。
有趣的是,DateTime
文档说:
对于时区支持,至少使用
TIMESTAMP
数据类型,如果不是方言特定的数据类型对象。[
timezone
论点:] 建议TIMESTAMP
在使用此标志时直接使用数据类型,因为某些数据库包含单独的通用日期/时间保持类型,与支持时区的 TIMESTAMP 数据类型不同,例如 Oracle。
...这提出了一个问题,如果我应该使用TIMESTAMP
,那是DateTime
为了什么?使用错误的列类型究竟会出现什么问题?
解决方案
推荐阅读
- python - 在 IIS 上使用烧瓶 API 部署后 xlwings 库无法正常工作
- amazon-web-services - 如何使用 AWS CLI 添加入站规则的描述?
- localization - toLocaleDateString 的语言环境参数问题
- android-studio - Android Studio 未连接到 Firebase
- kubernetes - 如何在 Kubernetes 中获取已经轮换的日志?
- node.js - 如何在nodejs中访问对象键,其中键为'category.0'格式
- postgresql - 通过几个条件将某个表连接到 generate_series 日期表
- bots - 我想制作一个机器人来简化我在 soundcloud 上的音乐流媒体体验
- java - 将消息写入代理后,Spark kafka 连接器抛出空指针异常
- powershell - 如何使用 Powershell 删除或替换字符串开头的模式?