如何将 TIMESTAMPDIFF 添加到 SqlSoup 查询?

Mar*_*ins 5 python sqlalchemy sqlsoup

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

实际的 SQL 短语应该是

TIMESTAMPDIFF(PERIOD, start_time, end_time) <= 60
Run Code Online (Sandbox Code Playgroud)

我试过

from sqlalchemy.sql.expression import func
Run Code Online (Sandbox Code Playgroud)

和 where-clause 短语(rc引用数据库和表)

where = and_(where, func.TIMESTAMPDIFF('PERIOD',rc.start_time,rc.end_time) <= 60)
Run Code Online (Sandbox Code Playgroud)

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

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

epe*_*gzz 5

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

尝试:

sqlalchemy.func.TIMESTAMPDIFF(sqlalchemy.text('PERIOD'),rc.start_time,rc.end_time) <= 60)
Run Code Online (Sandbox Code Playgroud)