首页 >数据库 >mysql教程 >如何按范围高效过滤 SQLAlchemy 日期字段?

如何按范围高效过滤 SQLAlchemy 日期字段?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-04 21:36:43645浏览

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