Порядок по ближайшей дате, будущему и прошлому отдельно ограничен 5 строками в каждой с использованием SQLAlchemy - PullRequest
1 голос
/ 07 апреля 2020

В моей базе данных postgresql есть таблица с именем Event. Таблица содержит столбец даты и времени, называемый временем. Я хочу получить (отдельно) 5 событий из прошлого, которые ближе всего к настоящей дате, и 5 событий, которые состоятся в ближайшем будущем. Есть ли способ сделать это, не запрашивая все события?

1 Ответ

1 голос
/ 08 апреля 2020

Возможно, есть более эффективный способ, но вы можете UNION прошедшие и будущие события с помощью запроса:

from sqlalchemy import func

past = Event.query.filter(Event.time <= func.now()).order_by(Event.time.desc()).limit(5)
future = Event.query.filter(Event.time >= func.now()).order_by(Event.time).limit(5)

past.union(future)
...