Maison >base de données >tutoriel mysql >Comment filtrer les utilisateurs de SQLAlchemy par tranche d'âge à l'aide de champs de date ?

Comment filtrer les utilisateurs de SQLAlchemy par tranche d'âge à l'aide de champs de date ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 05:33:13559parcourir

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

SQLAlchemy : Filtration des champs de date

Interrogation des utilisateurs dans une tranche d'âge spécifique

Étant donné la définition du modèle ci-dessous :

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

L'objectif est de récupérer tous les utilisateurs dans une tranche d'âge, comme ceux entre 18 et 30 ans old.

Implémentation correcte du filtre

Pour obtenir le filtrage souhaité, la requête SQLAlchemy suivante peut être utilisée :

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

Explication :

  • L'opérateur between() est utilisé pour spécifier les limites inférieure et supérieure de la date plage.
  • Les valeurs de date sont formatées sous forme de chaînes au format « AAAA-MM-JJ ».

Méthodes de filtrage alternatives

En plus d'utiliser l'intervalle entre( ), il existe d'autres méthodes pour filtrer les champs de date :

# 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')

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn