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

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

Mary-Kate Olsen
发布: 2025-01-04 21:36:43
原创
642 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板