Как добавить TIMESTAMDIFF в запрос SqlSoup? - PullRequest
4 голосов
/ 09 августа 2011

У меня есть программа отчетов, работающая и использующая 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?

1 Ответ

3 голосов
/ 27 октября 2011

sqlalchemy.text() ваш друг в этом случае: -)

Попробуйте:

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