我用Peewee作为我的ORM。我有一个DateTimeField,我想获取在某个特定日期发生的所有记录:
event_date = '2018-04-18'
event_date_dt = datetime.datetime.strptime(event_date, '%Y-%m-%d')
我知道我可以获取一个datetime对象并获取大于该值且小于第二天的所有记录:
list(Event.select().where((Event.event_date > event_date_dt) & (Event.event_date < event_date_dt + datetime.timedelta(days=1))))
然而,这感觉非常hacky。有更好的解决方案吗?
我在peewee docs中发现了以下解决方案:
from peewee import fn
list(Event.select().where(fn.date_trunc('day', Event.event_date) == event_date_dt))