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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 15:28:15387parcourir

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

Filtrage des champs de données SQL

Lorsque vous travaillez avec des données dans une base de données SQL, il est souvent nécessaire de filtrer des champs spécifiques pour récupérer des informations ciblées. Dans ce cas, nous explorons comment filtrer un champ représentant des dates à l'aide de SQLAlchemy.

Étant donné le modèle suivant :

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

Notre objectif est de filtrer les utilisateurs en fonction de leurs anniversaires, en particulier ceux dans une tranche d'âge particulière, par exemple entre 18 et 30 ans.

À l'origine, vous avez tenté d'implémenter le filtrage using :

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

Cependant, cette requête est incorrecte en raison d'une faute de frappe. Le filtre approprié doit être :

qry = DBSession.query(User).filter(
    and_(User.birthday <= '1988-01-17', User.birthday >= '1985-01-17')
)

Une autre alternative pour filtrer les plages de dates est la fonction between :

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

En utilisant ces requêtes filtrées, vous pouvez récupérer des enregistrements d'utilisateurs spécifiques en fonction de leur dates de naissance, vous permettant d'effectuer d'autres opérations ou analyses sur les données sélectionnées.

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