如何在SqlSoup查询中添加TIMESTAMPDIFF?

5 投票
1 回答
2034 浏览
提问于 2025-04-16 23:10

我有一个报告程序在运行,使用的是SqlSoup,除了MySQL的一个函数TIMESTAMPDIFF,其他的查询都是通过SqlSoup生成的。

实际的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)

这个可以编译,但在记录日志时显示PERIOD%s,然后下面有一个参数PERIOD,这似乎不起作用。

有没有什么方法可以用SqlSoup做到这一点?

1 个回答

5

sqlalchemy.text() 在这种情况下是你的好帮手 :-)

试试这个:

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

撰写回答