ホームページ >データベース >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'
    )
)

Using Between

別のアプローチは、日付を直接指定できる between メソッドを使用することです。範囲:

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

以上がSQLAlchemy の日付フィールドを範囲で効率的にフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。