@alekssamos
Программист любитель

Как в sqlalchemy выбрать старые записи по дате и времени?

Помогите правильно написать запрос.
Выбрать только все, что создано более одного часа назад.
Не могу написать запрос. Не работает. Нужно получить старые записи, для примера, сделанные более одного часа назад, то есть "5 часов" - да, "23 минуты" - нет.
То есть:
  • задание, которое создано три часа назад / 7 дней назад — да, должно попасть в выборку
  • а что создано всего лишь 10 минут назад / 56 минут назад — нет, это в выборку не должно войти

Мои попытки:
import datetime
from app import db
from dbmodels import QTasks

# 1)

diff = datetime.datetime.now() - datetime.timedelta(hours=1)

db.session.query(QTasks).filter(diff < datetime.datetime.now()).all()

# 2)

db.session.query(QTasks)
                    .filter(
                        (datetime.datetime.now() - QTasks.created_at > datetime.timedelta(hours=1))
                    )
                                          .all()

Либо выдаёт все записи, даже новые (только что созданные), либо пустой результат.
Есть похожий код на PHP, там я использую функцию time() и запросы пишу вручную, вроде бы как получилось, а здесь, в Python, не получается, не могу понять.
  • Вопрос задан
  • 545 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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