SQLAlchemy: how to filter date field?

前端 未结 3 869
逝去的感伤
逝去的感伤 2020-12-02 06:37

Here is model:

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

I want to

3条回答
  •  失恋的感觉
    2020-12-02 06:51

    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'))
    

提交回复
热议问题