SQLAlchemy : Filtrage des champs de date
Dans un scénario où un modèle utilisateur définit un champ « anniversaire » comme type de données Date, survient le besoin de filtrer les utilisateurs en fonction d’une tranche d’âge. Pour y parvenir avec SQLAlchemy, on pourrait dans un premier temps envisager et tenter :
query = DBSession.query(User).filter( and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17') )
Cependant, cette tentative n'est pas précise. Le filtre corrigé est :
qry = DBSession.query(User).filter( and_(User.birthday <= '1988-01-17', User.birthday >= '1985-01-17') )
ou de manière équivalente :
qry = DBSession.query(User).filter(User.birthday <= '1988-01-17').\ filter(User.birthday >= '1985-01-17')
Alternativement, l'opérateur between peut être utilisé dans le même but :
qry = DBSession.query(User).filter(User.birthday.between('1985-01-17', '1988-01-17'))
Ces approches assurez-vous que les enregistrements dans la plage de dates spécifiée sont sélectionnés avec précision.
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!