5

我有一个正在运行和使用 SqlSoup 的报告程序,并且现在由 SqlSoup 调用生成整个查询,但 MySqL Function 除外TIMESTAMPDIFF

实际的 SQL 短语应该是

TIMESTAMPDIFF(PERIOD, start_time, end_time) <= 60

我试过了

from sqlalchemy.sql.expression import func

和 where 子句短语(rc参考数据库和表)

where = and_(where, func.TIMESTAMPDIFF('PERIOD',rc.start_time,rc.end_time) <= 60)

这可以编译,但是登录后会显示PERIODas%sPERIOD 下面的参数,这似乎不起作用。

使用 SqlSoup 执行此操作的任何想法?

4

1 回答 1

5

sqlalchemy.text()在这种情况下是你的朋友:-)

尝试:

sqlalchemy.func.TIMESTAMPDIFF(sqlalchemy.text('PERIOD'),rc.start_time,rc.end_time) <= 60)
于 2011-10-26T21:32:31.473 回答