【问题标题】:How to add TIMESTAMPDIFF to SqlSoup query?如何将 TIMESTAMPDIFF 添加到 SqlSoup 查询?
【发布时间】:2021-09-20 16:08:24
【问题描述】:

我有一个正在运行并使用 SqlSoup 的报告程序,并且现在由 SqlSoup 调用生成整个查询,但 MySqL 函数 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)

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

对使用 SqlSoup 执行此操作有什么想法吗?

【问题讨论】:

    标签: python sqlalchemy sqlsoup


    【解决方案1】:

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

    试试:

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

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 1970-01-01
      • 2023-04-03
      • 2023-03-29
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多