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.