Python SQLAchemy在MySQL中以微秒精度存储datetime
我正在尝试在MySQL中以微秒的精度存储日期时间作为时间戳:Python SQLAchemy在MySQL中以微秒精度存储datetime,python,mysql,sql,orm,sqlalchemy,Python,Mysql,Sql,Orm,Sqlalchemy,我正在尝试在MySQL中以微秒的精度存储日期时间作为时间戳:2020-05-10 16:00:00.666666 这是我的模型: class Order(Base): __tablename__ = "order" order_id = Column("id", String(50), primary_key=True) published_at = Column( "published_at", TIMEST
2020-05-10 16:00:00.666666
这是我的模型:
class Order(Base):
__tablename__ = "order"
order_id = Column("id", String(50), primary_key=True)
published_at = Column(
"published_at", TIMESTAMP, nullable=True
)
以下是我的insert语句(在会话中完成):
使用SQLLite我得到了我所期望的。然而,当使用MySQL时,我松开了小数第二部分,得到了2020-05-10 15:00:00
。有没有办法解决这个问题
提前感谢时间戳已像从sqlalchemy导入时间戳一样导入,但是这不允许您访问fsp参数,因此您必须使用sql特定方言:
从sqlalchemy.dialogs.mysql导入时间戳
。然后您可以在模型中使用时间戳(fsp=6)
。Ref必须明确指定小数部分的长度,即数据类型必须是时间戳(6)
,而不是单个时间戳。请参阅文档,了解如何在SQLAchemy中执行此操作。我在文档中找不到引用的内容?需要SQL特定方言吗
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()