gpt4 book ai didi

python - SQLAlchemy DateTime 到 datetime.datetime

转载 作者:太空宇宙 更新时间:2023-11-04 03:57:14 29 4
gpt4 key购买 nike

如何在 SQLAlchemy 查询中比较 DateTime 字段和 datetime.datetime 对象?

例如,如果我这样做

candidates = session.query(User).filter_by((User.time - datetime.datetime.utcnow()) > datetime.timedelta(months=2))

我会得到

TypeError: unsupported operand type(s) for -: 'DateTime' and 'datetime.datetime'

我猜这是因为当我们使用 filter_by 命令时 DateTime 字段从未被完全提取,因此它没有被转换为 datetime.datetime 对象?它是否正确? SQLAlchemy 用户通常如何处理这个问题?

注意:User.time 是一个 DateTime 字段。

最佳答案

首先,请注意 datetime.timedelta 没有将“月”作为参数。尝试使用 'weeks=8' 代替 ( http://docs.python.org/2/library/datetime.html#datetime.timedelta )。

其次,使用“filter”而不是“filter_by”,因为后者适用于涉及按值查询的更简单的查询(即 User.name='Bob' http://docs.sqlalchemy.org/en/rel_0_8/orm/query.html#sqlalchemy.orm.query.Query.filter)。

所以,我要写的应该是这样的:

candidates = session.query(User).filter((User.time - datetime.datetime.utcnow()) > datetime.timedelta(weeks=8))

最后,您的“用户”表的映射是什么,也许问题出在列定义上?

关于python - SQLAlchemy DateTime 到 datetime.datetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17682472/

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