Задать вопрос

Почему неправильно работает фильтр для запроса выбора в 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, чего похоже не делается в запросе.
  • Вопрос задан
  • 290 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Продвинутый SQL
    5 недель
    Далее
  • Яндекс Практикум
    SQL для разработки
    4 месяца
    Далее
  • Академия Eduson
    SQL-разработчик: тариф Базовый
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
p2mbot
@p2mbot
javascript, python
Я все запросы со временем делаю в виде:
ObjModel.query.filter(ObjModel.time_field > datetime.now()-timedelta(minutes=xxx))...


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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽