Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 8, 2007 21:06:44

Nuclon
От:
Зарегистрирован: 2007-10-08
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlalchemy, выбрать записи,где now() - timestamp_field < 3 days - как?

собственно - сабж

БД - постгрес.

что-то типа
SELECT * FROM table WHERE now() - timestamp_field < interval ‘3 days’;
но в представлении SQLAlchemy

не могу сообразить как. :)

заранее спасибо.



Офлайн

#2 Окт. 8, 2007 22:03:47

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

sqlalchemy, выбрать записи,где now() - timestamp_field < 3 days - как?

да хоть бы и так:
session.query(Table).filter(text(“now() - timestamp_field < interval ‘3 days’)”)



Офлайн

#3 Окт. 8, 2007 22:49:28

Nuclon
От:
Зарегистрирован: 2007-10-08
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlalchemy, выбрать записи,где now() - timestamp_field < 3 days - как?

“а зачем тогда корова?” (с) кот Матроскин
всмысле - разве это нормально в ORM системе вставлять RAW SQL куски?..



Офлайн

#4 Окт. 9, 2007 02:26:41

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

sqlalchemy, выбрать записи,где now() - timestamp_field < 3 days - как?

Иногда - нормально.
Беда в том, что запись вида now() - timestamp_field легко превращается в func.now() - table.c.timestamp_field, но специфически постгресовое interval ‘3 days’ записать напрямую нельзя.
Хотя, кажется, была функция с аналогичным поведением, возвращающая интервал. Можешь подставить ее.



Офлайн

#5 Окт. 9, 2007 08:10:06

Nuclon
От:
Зарегистрирован: 2007-10-08
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlalchemy, выбрать записи,где now() - timestamp_field < 3 days - как?

до func.now() - table.c.timestamp_field я тоже сумел дойти, но вот дальше…
ладно, “будем искать” (с)
:)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version