如何解决如何通过 sqlalchemy 在 Postgresql 中记录时间
我完全不明白如何将净时间写入数据库。
我使用时间对象通过 sqlalchemy 创建了一个表。我做的一切都对吗?
windows = Table(
"windows",Meta,Column("courier_id",Integer,ForeignKey("couriers.courier_id"),nullable=False),Column("start_time",Time),Column("end_time",Time)
)
我现在如何上传数据?我是这样做的
query = datab.windows.insert().values([1,09:00,18:00])
await conn.execute(query)
——还有一个问题。 insert()中如何指定要填充哪些列
解决方法
使用 datetime.time()
对象指定时间值并将 .values()
作为以列名作为键的字典传递:
import datetime
from sqlalchemy import (
create_engine,Table,Column,Integer,Time,ForeignKey,MetaData,)
engine = create_engine("sqlite:///:memory:",echo=True)
windows = Table(
"windows",MetaData(),Column(
"courier_id",# ForeignKey("couriers.courier_id"),# omit for this example
nullable=False,),Column("start_time",Time),Column("end_time",)
windows.create(engine)
stmt = windows.insert().values(
{
"courier_id": 1,"start_time": datetime.time(9),"end_time": datetime.time(18),}
)
with engine.begin() as conn:
conn.execute(stmt)
"""SQL generated:
2021-03-24 16:57:50,811 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2021-03-24 16:57:50,813 INFO sqlalchemy.engine.Engine INSERT INTO windows (courier_id,start_time,end_time) VALUES (?,?,?)
2021-03-24 16:57:50,813 INFO sqlalchemy.engine.Engine [generated in 0.00036s] (1,'09:00:00.000000','18:00:00.000000')
2021-03-24 16:57:50,813 INFO sqlalchemy.engine.Engine COMMIT
"""
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。