首頁 > 資料庫 > mysql教程 > 如何正確篩選年齡範圍查詢的 SQLAlchemy 日期欄位?

如何正確篩選年齡範圍查詢的 SQLAlchemy 日期欄位?

Mary-Kate Olsen
發布: 2024-12-21 04:09:10
原創
860 人瀏覽過

How to Correctly Filter SQLAlchemy Date Fields for Age Range Queries?

SQLAlchemy:過濾日期欄位

在 SQLAlchemy 中,依照日期欄位進行過濾需要仔細考慮。讓我們探索如何在兩個日期之間正確過濾以提取指定年齡範圍內的資料。

建模日期欄位

假設您有一個帶有生日欄位的User 模型定義為日期資料類型,它在資料庫中表示為格式為「YYYY- MM-DD”的字串,例如, '1987-01-17'.

按年齡範圍過濾

要選擇特定年齡範圍內的所有用戶,比如說 18 到 30歲,我們需要將他們的生日與代表該生日開始和結束的相應日期進行比較

不正確的方法

您的初始查詢雖然在概念上是正確的,但包含顛倒不等號的拼字錯誤:

query = DBSession.query(User).filter(
  and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17')
)
登入後複製

此查詢排除所有記錄,因為它檢查生日大於或等於「1988-01-17」且小於或等於「1988-01-17」的使用者等於'1985-01-17',這是不可能的。

正確方法

要正確過濾,只需反轉不等號即可:

qry = DBSession.query(User).filter(
  and_(User.birthday <= '1988-01-17', User.birthday >= '1985-01-17')
)
登入後複製

或者,您可以使用內建的Between()方法:

qry = DBSession.query(User).filter(User.birthday.between('1985-01-17', '1988-01-17'))
登入後複製

兩種方法都會返回生日在指定日期範圍內的用戶,代表所需的年齡區間。

以上是如何正確篩選年齡範圍查詢的 SQLAlchemy 日期欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板