首頁 >資料庫 >mysql教程 >如何按範圍高效率過濾 SQLAlchemy 日期欄位?

如何按範圍高效率過濾 SQLAlchemy 日期欄位?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 21:36:43620瀏覽

How to Efficiently Filter SQLAlchemy Date Fields by Range?

SQLAlchemy 日期欄位過濾

在 SQLAlchemy 中過濾日期欄位可以精確選擇指定日期範圍內的記錄。考慮以下模型:

class User(Base):
    ...
    birthday = Column(Date, index=True)   #in database it's like '1987-01-17'
    ...

過濾日期範圍

要過濾特定年齡範圍內的用戶,您可以利用SQLAlchemy 的過濾機制:

query = DBSession.query(User).filter(
    and_(
        User.birthday >= '1988-01-17',
        User.birthday <= '1985-01-17'
    )
)

但是,這種方法有拼字錯誤。要選擇年齡在18 歲到30 歲之間的用戶,您應該交換大於或等於(>=) 和小於或等於(<=) 運算符:

query = DBSession.query(User).filter(
    and_(
        User.birthday <= '1988-01-17',
        User.birthday >= '1985-01-17'
    )
)

使用Between

另一種方法是使用Between 方法,它允許直接指定日期範圍:

query = DBSession.query(User).filter(
    User.birthday.between('1985-01-17', '1988-01-17')
)

以上是如何按範圍高效率過濾 SQLAlchemy 日期欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn