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?