首页 >数据库 >mysql教程 >如何使用日期字段按年龄范围过滤 SQLAlchemy 用户?

如何使用日期字段按年龄范围过滤 SQLAlchemy 用户?

Barbara Streisand
Barbara Streisand原创
2024-12-16 05:33:13559浏览

How to Filter SQLAlchemy Users by Age Range Using Date Fields?

SQLAlchemy:日期字段过滤

查询特定年龄范围内的用户

给出以下模型定义:

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

目标是检索某个年龄范围内的所有用户,例如 18 到 30 岁之间的用户

正确的过滤器实现

要实现所需的过滤,可以使用以下 SQLAlchemy 查询:

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

解释:

  • Between() 运算符用于指定日期的下限和上限范围。
  • 日期值的格式为“YYYY-MM-DD”格式的字符串。

替代过滤方法

除了使用 Between( ) 运算符,还有其他过滤日期字段的方法:

# Filter by upper bound date
query = DBSession.query(User).filter(User.birthday <= '1988-01-17')
# Filter by lower bound date
query = DBSession.query(User).filter(User.birthday >= '1985-01-17')
# Filter by equality
query = DBSession.query(User).filter(User.birthday == '1987-01-17')

以上是如何使用日期字段按年龄范围过滤 SQLAlchemy 用户?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn