remove query queries delete binds python sqlalchemy

python - query - select sqlalchemy



Python SqlAlchemy order_by DateTime? (3)

Estoy usando SqlAlchemy para almacenar algunos objetos con un campo DateTime:

my_date = Field(DateTime())

Me gustaría ejecutar una consulta para recuperar los pocos objetos más recientes (Entidades con el campo my_date que son los más recientes).

He intentado lo siguiente:

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

Pero estas consultas devuelven los mismos objetos en el mismo orden. La documentación de SqlAlchemy señala el uso del ''-'' para revertir el orden, pero seguramente me falta algo aquí.

¿Alguien puede ayudar?


Puedes hacerlo así:

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

Es posible que necesite:

from sqlalchemy import desc

Aquí hay algo de documentación .

Otra opción es esta:

stmt = select([users_table]).order_by(users_table.c.name.desc())


Utilizo sqlalchemy con regularidad para confirmar que la respuesta de treintadot es correcta, debe usar sqlalchemy.sql.desc lugar del operador - para influir en order_by.


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

Deberia trabajar.