代码之家  ›  专栏  ›  技术社区  ›  Eduardo Rocha

SQLAlchemy,带日期间隔的查询,按时间\u开始和时间\u结束过滤

  •  0
  • Eduardo Rocha  · 技术社区  · 8 年前

    我喜欢构建一个查询来返回间隔之间的元素 date_start date_finish 过滤特定时间间隔,如凌晨02点到凌晨04点。

    all_elements = "elements >= date_start and <= date_finish"
    all_elements_on_interval = "all_elements >= x.time and <= y.time"
    

    ps:这是第一次使用SQLAlchemy。

    1 回复  |  直到 8 年前
        1
  •  1
  •   bjdduck    8 年前

    sqlalchemy.DateTime 对象,您可以运行一个非常简单的过滤器;sqlalchemy使用python datetime.datetime() 对象

    class Element(Base):
        __tablename__ = 'elements'
        id = Column(Integer, primary_key=True)
        name = Column(String(64))
        dt = Column(DateTime)
    
    date_start = datetime(2017, 10, 27, 2, 0)
    date_finish = datetime(2017, 10, 27, 4, 0)
    
    all_elements_on_interval = session.query(Element).filter(and_(Element.dt >= date_start, Element.dt <= date_finish)).all()
    

    不要忘记导入datetime和sqlalchemy以及_

    from datetime import datetime
    from sqlalchemy import and_