【问题标题】:How do you sort by datetime in sqlalchemy你如何在 sqlalchemy 中按日期时间排序
【发布时间】:2021-11-23 16:20:22
【问题描述】:

我正在尝试检索输入到数据库对象中的数据的最新条目。

database_object = db(pid=1, content_entered=datetime.datetime.utcnow())

Assume I add multiple database_object into db and have multiple entry, I want to query the latest entry.

我尝试过这样做:

database_object.query.filter_by(
        pid=1).order_by(desc(db.content_entered)).first()

但我收到此错误:

sqlalchemy.exc.ArgumentError: ORDER BY expression expected, got datetime.datetime(2021, 10, 2, 9, 28, 57, 973620).

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 这个帖子为我解决了问题stackoverflow.com/questions/4582264/…
  • desc 的参数应该是模型 class 和属性;您正在传递一个 instance (database_object)。你想要desc(db.content_entered)db.content_entered.desc(),假设db 是你的模型类。
  • ah nvm,我意识到我做错了,我只传入单个实例而不是整个数据库条目
  • 请标记重复并删除,谢谢

标签: python-3.x sqlalchemy flask-sqlalchemy


【解决方案1】:

以下应该有效:

entry = database_object.query.filter_by(
    pid=1
).order_by(
    database_object.content_entered.desc()
).first()

print(entry.content_entered)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多