Подтвердить что ты не робот

Python SqlAlchemy order_by DateTime?

Я использую SqlAlchemy для хранения некоторых объектов с полем DateTime:

my_date = Field(DateTime())

Я хотел бы запустить запрос для извлечения самых последних нескольких объектов (Entities с самым новым полем my_date).

Я пробовал следующее:

entities = MyEntity.query.order_by(MyEntity.time).limit(3).all()
entities = MyEntity.query.order_by(-MyEntity.time).limit(3).all()

Но эти запросы возвращают одни и те же объекты в том же порядке. В документации SqlAlchemy указано использование "-", чтобы отменить порядок, но я, несомненно, здесь что-то пропустил.

Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

Вы можете сделать это следующим образом:

entities = MyEntity.query.order_by(desc(MyEntity.time)).limit(3).all()

Вам может потребоваться:

from sqlalchemy import desc

Здесь некоторая документация.

Ответ 2

entities = MyEntity.query.order_by(MyEntity.my_date.desc()).limit(3).all()

должен работать.

Ответ 3

Я регулярно использую sqlalchemy, поэтому я могу подтвердить, что ответ на тридцать правильный, вам нужно использовать sqlalchemy.sql.desc вместо оператора - для воздействия на order_by.