我有一个正在运行并使用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/