Nuclon
Окт. 8, 2007 21:06:44
собственно - сабж
БД - постгрес.
что-то типа
SELECT * FROM table WHERE now() - timestamp_field < interval ‘3 days’;
но в представлении SQLAlchemy
не могу сообразить как. :)
заранее спасибо.
Андрей Светлов
Окт. 8, 2007 22:03:47
да хоть бы и так:
session.query(Table).filter(text(“now() - timestamp_field < interval ‘3 days’)”)
Nuclon
Окт. 8, 2007 22:49:28
“а зачем тогда корова?” (с) кот Матроскин
всмысле - разве это нормально в ORM системе вставлять RAW SQL куски?..
Андрей Светлов
Окт. 9, 2007 02:26:41
Иногда - нормально.
Беда в том, что запись вида now() - timestamp_field легко превращается в func.now() - table.c.timestamp_field, но специфически постгресовое interval ‘3 days’ записать напрямую нельзя.
Хотя, кажется, была функция с аналогичным поведением, возвращающая интервал. Можешь подставить ее.
Nuclon
Окт. 9, 2007 08:10:06
до func.now() - table.c.timestamp_field я тоже сумел дойти, но вот дальше…
ладно, “будем искать” (с)
:)