令人费解的头衔。我正在使用python sqlalchemy和postgresql数据库。
我有一个存储Events
的数据库,每个事件记录都有一个starttime
和一个endtime
列。上述两个列都采用以下格式:
2015-06-22 13:00:00
因此,如何从特定日期查询数据库中的所有Events
。从而忽略了starttime
和endtime
列的“时间”部分?
例如我试过:
query = Event.query.filter(Event.starttime=='2015-06-22', Event.endtime=='2015-06-22').all()
然而,这得出0结果,我假设这可能是因为没有hh / mm / ss使得查询'假设'我的意思是00:00:00。
我也试过
query = Event.query.filter(Event.starttime>='2015-06-22', Event.endtime<='2015-06-22').all()
但是这也得出了0个结果,我假设与前一个结果相同。
任何帮助将不胜感激!
这是发送到DB的查询:
SELECT events.id AS events_id, events.summary AS events_summary, events.starttime AS events_starttime, events.endtime AS events_endtime, events.parentcal AS events_parentcal, events.userid AS events_userid
FROM events
WHERE events.starttime >= :starttime_1 AND events.endtime < :endtime_1
答案 0 :(得分:0)
尝试使用实际的日期时间对象。 SQLAlchemy可以解释它们。
from datetime import datetime
starttime = datetime.strptime('2015-06-22', '%Y-%m-%d')
endtime = datetime.strptime('2015-06-23', '%Y-%m-%d')
query = Event.query.filter(Event.starttime>=starttime, Event.endtime<endtime).all()
有关解析日期时间字符串的更多信息,请查看docs