对于数据库列中的特定日期和时间,如何查询特定日期的所有记录?
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
。从而忽略 starttime
和 endtime
列的 "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
令人费解的标题。我在 postgresql 数据库中使用 python sqlalchemy。
我有一个存储 Events
的数据库,每个事件记录都有一个 starttime
和一个 endtime
列。上述两列都是这种格式:
2015-06-22 13:00:00
因此,我如何查询数据库中特定日期的所有 Events
。从而忽略 starttime
和 endtime
列的 "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