微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过 sqlalchemy 在 Postgresql 中记录时间

如何解决如何通过 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?