["python","sql","database","orm","sqlalchemy"]
SQLAlchemy: how to filter date field?

Here is model: class User(Base): ... birthday = Column(Date, index=True) #in database it's like '1987-01-17' ... I want to filter between two dates, for example to choose all users in interval 18-30 years. How to implement it with SQLAlchemy? I think of: query = DBSession.query(User).filter( and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17') ) # means age >= 24 and age <= 27 I know this is not correct, but how to do correct?
In fact, your query is right except for the typo: your filter is excluding all records: you should change the <= for >= and vice versa: qry = DBSession.query(User).filter( and_(User.birthday <= '1988-01-17', User.birthday >= '1985-01-17')) # or same: qry = DBSession.query(User).filter(User.birthday <= '1988-01-17').\ filter(User.birthday >= '1985-01-17') Also you can use between: qry = DBSession.query(User).filter(User.birthday.between('1985-01-17', '1988-01-17'))