SQLAlchemy: comment filtrer le champ date?
Ici est le modèle:
class User(Base):
...
birthday = Column(Date, index=True) #in database it's like '1987-01-17'
...
Je veux filtre entre deux dates, par exemple, pour sélectionner tous les utilisateurs dans l'intervalle de 18 à 30 ans.
Comment la mettre en œuvre avec SQLAlchemy?
Je pense:
query = DBSession.query(User).filter(
and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17')
)
# means age >= 24 and age <= 27
Je sais que ce n'est pas correct, mais comment le faire corriger?
Vous devez vous connecter pour publier un commentaire.
En fait, votre requête est de droit, sauf pour la faute de frappe: le filtre est à l'exclusion de tous les records: vous devriez changer le
<=
pour>=
et vice versa:Vous pouvez également utiliser
between
:'1985-01-17'
, vous pouvez également utiliserdatetime.date(1985, 1, 17)
- peut-être plus facile à obtenir, au travail ou dans certains environnements.il est égal à:
le souhaitent peuvent vous aider.
si vous voulez obtenir le ensemble période:
Cela signifie que la gamme: 1985-01-17 00:00 - 1988-01-17 23:59