【发布时间】:2019-02-14 15:06:16
【问题描述】:
这与Using a SQLAlchemy Integer field to create a timedelta object for comparison 不同,因为该线程在添加时间时询问使用哪个函数。该函数是为他们的 MySQL 版本找到的,但是,用户的后续编辑偏离了他们最初的问题,并且没有回答这个问题。
我正在使用 MySQL。我想使用一个名为 timestampadd 的函数。 https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestampadd 它的第一个参数是我要添加的时间单位,例如:MINUTE、HOUR、DAY。
在编写 SQLAlchemy 查询时,我不能这样做
datetime_now = datetime.datetime.utcnow()
Item.query.filter(Item.created <= sqlalchemy.func.timestampadd(MINUTE, 1, datetime_now))
如果我这样做,我将收到MINUTE 的未定义错误。我也试过了:
Item.query.filter(Item.created <= sqlalchemy.func.timestampadd('MINUTE', 1, datetime_now))
但这会生成带有引号的 timestampadd 调用,这会导致 MySQL 错误。如何在生成的查询中删除 MINUTE 周围的引号?
【问题讨论】:
标签: python mysql sqlalchemy