SQLAlchemy,查询日期间隔,按time_start和time_end

时间:2017-10-26 13:46:42

标签: python sqlalchemy

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

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

ps:这是SQLAlchemy的第一次。

1 个答案:

答案 0 :(得分:1)

如果您将列类型设为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()

不要忘记导入日期时间和sqlalchemy和_

from datetime import datetime
from sqlalchemy import and_