我有一个正在运行并使用SqlSoup的报告程序,并且除了MySqL函数TIMESTAMPDIFF之外,现在都由SqlSoup调用生成了整个查询。

实际的SQL短语应为

TIMESTAMPDIFF(PERIOD, start_time, end_time) <= 60

我试过了
from sqlalchemy.sql.expression import func

和一个从句短语(带有rc的对数据库和表的引用)
where = and_(where, func.TIMESTAMPDIFF('PERIOD',rc.start_time,rc.end_time) <= 60)

会编译,但登录后会显示PERIOD%s,然后显示参数PERIOD下面,这似乎不起作用。

有什么用SqlSoup做到这一点的想法吗?

最佳答案

在这种情况下,sqlalchemy.text()是您的 friend :-)

尝试:

sqlalchemy.func.TIMESTAMPDIFF(sqlalchemy.text('PERIOD'),rc.start_time,rc.end_time) <= 60)

关于python - 如何将TIMESTAMP DIFF添加到SqlSoup查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6990021/

10-15 20:49