对于数据库列中的特定日期和时间,如何查询特定日期的所有记录?

With specific dates AND times in a database column, how do I query for all records on a specific day?

令人费解的标题。我在 postgresql 数据库中使用 python sqlalchemy。

我有一个存储 Events 的数据库,每个事件记录都有一个 starttime 和一个 endtime 列。上述两列都是这种格式:

2015-06-22 13:00:00

因此,我如何查询数据库中特定日期的所有 Events。从而忽略 starttimeendtime 列的 "time" 部分?

例如我试过:

query = Event.query.filter(Event.starttime=='2015-06-22', Event.endtime=='2015-06-22').all()

然而这得出了 0 个结果,我假设这可能是因为 hh/mm/ss 的缺失使得查询 'assume' 我的意思是 00:00:00。

我也试过了

query = Event.query.filter(Event.starttime>='2015-06-22', Event.endtime<='2015-06-22').all()

但是这也得出了 0 个结果,我认为是出于与之前相同的原因。

如有任何帮助,我们将不胜感激!

这是发送到数据库的查询:

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

尝试使用实际的日期时间对象。 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