python - SQLAchemy 在 MySQL 中以微秒精度存储日期时间
问题描述
我正在尝试以微秒精度将日期时间存储为 MySQL 中的时间戳:2020-05-10 16:00:00.666666
使用 SQLAchemy
这是我的模型:
class Order(Base):
__tablename__ = "order"
order_id = Column("id", String(50), primary_key=True)
published_at = Column(
"published_at", TIMESTAMP, nullable=True
)
这是我的插入语句(在会话中完成):
order = Order(
order_id=id,
published_at=published_at, #python datetime of format: 2020-05-10 15:00:00.555555+00:00
)
session.add(order)
session.commit()
使用 SQLLite 我得到了我的期望。但是,当使用 MySQL 时,我会松开小数部分并得到2020-05-10 15:00:00
. 任何想法如何解决这个问题?
提前致谢
解决方案
TIMESTAMP 已被导入,from sqlalchemy import TIMESTAMP
但是这不会让您访问 fsp 参数,因此您必须使用 sql 特定方言:from sqlalchemy.dialects.mysql import TIMESTAMP
。然后就可以TIMESTAMP(fsp=6)
在模型中使用了。参考https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP
推荐阅读
- regex - 如何重定向除 htaccess 文件上的特定路径之外的所有内容?
- scala - 在 spark 中运行 scala 代码时,我得到“Task not serializable”,为什么?
- google-cloud-platform - 谷歌云负载均衡器是单点故障吗?我们可以有一个备用副本吗?
- soapui - 使用 SoapUI 登录 Jasig CAS 服务器
- java - 方法覆盖和重载
- c++ - CMake FetchContent 不复制库
- system-verilog - uvm_sequence_item get_type_name 应该是虚拟的
- python - 如何绘制两个带有堆叠条的直方图,而不将所有条堆叠在一起?
- java - 使用 Netflix Governator 管理没有注释的 java 对象的生命周期
- hive - 有没有办法在不使用 ALTER TABLE CONCATENATE 命令的情况下合并 HDFS 中的 ORC 文件?