Почему неправильно работает фильтр для запроса выбора в SQLAlchemy (Flask)?

Имеется запрос ...
User.query.filter((datetime.datetime.now()-User.latest_active)<datetime.timedelta(minutes=1)).count()

...который должен выбирать из БД количество пользователей, активных на сайте менее 1 минуты назад. Работает без синтаксических ошибок. Однако, он выбирает всех (2) пользователей не смотря на то, что один из них был в поледний раз 2 недели назад онлайн.

Если же проверить второго (2 недели назад который) пользователя вручную:
user = User.query.filter_by(id=2).first()
print((datetime.datetime.now()-user.latest_active)<datetime.timedelta(minutes=1))

Тогда возвращается False, чего похоже не делается в запросе.
  • Вопрос задан
  • 287 просмотров
Пригласить эксперта
Ответы на вопрос 1
p2mbot
@p2mbot
javascript, python
Я все запросы со временем делаю в виде:
ObjModel.query.filter(ObjModel.time_field > datetime.now()-timedelta(minutes=xxx))...


Т.е. в сравнении слева стоит поле таблицы. Возможно для реализации метода filter это важно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы