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

Почему неправильно работает фильтр для запроса выбора в 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, чего похоже не делается в запросе.
  • Вопрос задан
  • 289 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    SQL для разработки
    4 месяца
    Далее
  • Академия Eduson
    SQL-разработчик: тариф Базовый
    3 месяца
    Далее
  • Stepik
    SQL с нуля до PRO
    2 недели
    Далее
Пригласить эксперта
Ответы на вопрос 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 ₽