gpt4 book ai didi

python - 将 postgres "time with timezone"与 sqlalchemy 一起使用

转载 作者:行者123 更新时间:2023-11-29 12:50:37 26 4
gpt4 key购买 nike

我在 python 3.7 中使用 postgres 和 sqlalchemy

我有一个类型为“time with timezone”的列,并尝试插入一个新行。

TAB = Table("tab", METADATA,
# ...

Column('created', DateTime(timezone=True), default=datetime.now)
)

现在我尝试插入一个新行。我收到这条消息:

(psycopg2.ProgrammingError) column "created" is of type time with time zone but expression is of type timestamp without time zone

有人知道我必须做什么吗?

谢谢!

最佳答案

主要问题似乎是您正在映射 SQLALchemy DateTime列到 PostgreSQL time with time zone柱子。你应该看看Time相反。

如果您打算使用 PostgreSQL timestamp with time zone列,那么您仍然需要重新考虑您的默认设置,因为 datetime.now 不支持时区。有几种方法可以解决这个问题,但一个简单的方法是改用 SQLAlchemy 的 func.now()。例如:

from sqlalchemy import Column, DateTime, Integer, MetaData, Table
from sqlalchemy.sql import func

metadata = MetaData()

example = Table('example', metadata,
Column('id', Integer, primary_key=True),
Column('date', DateTime(timezone=True), default=func.now())
)

关于python - 将 postgres "time with timezone"与 sqlalchemy 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54796888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com