【发布时间】:2015-07-11 22:32:04
【问题描述】:
我有一个名为 Item 的对象。它有 2 个字段:一个名为“created_on”的日期时间行和一个名为“days”的整数行。
我想查询很多天前创建的所有对象。
我认为应该这样做:
now = utcnow()
session.query(Item).filter(Item.created_on + Interval(timedelta(days=Item.days)) <= now)
但我无法创建这样的时间增量。我收到此错误:
TypeError: unsupported type for timedelta minutes component: InstrumentedAttribute
更新:
感谢 van,我应该使用内置函数。我使用的是 Mysql 5.1,所以它是timestampadd。我的新查询是这样的:
now = utcnow()
session.query(Item).filter(func.timestampadd('DAY', Item.days, Item.created_on) <= now)
但是,我得到的新错误是:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''DAY', items.days, items.created_on) <= '2015-07-12 ' at line 3
【问题讨论】:
标签: python mysql sqlalchemy timedelta