如何过滤Django中DateTimeField的日期?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

我试图过滤一个DateTimeField和约会相比。我是说:

MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22))

我得到一个空的查询列表作为答案,因为(我想)我没有考虑时间,但我想“任何时候”。

在Django有一个简单的方法来做这件事吗?

我有时间在日期设定的时间,它不是00:00...

提问于
用户回答回答于
YourModel.objects.filter(datetime_published__year='2008', 
                         datetime_published__month='03', 
                         datetime_published__day='27')

YourModel.objects.filter(datetime_published=datetime(2008, 03, 27))

Doest不工作,因为它创建一个时间值设置为0的datetime对象,因此数据库中的时间不匹配。

用户回答回答于

这样的查找是在django.views.generic.date_based详情如下:

{'date_time_field__range': (datetime.datetime.combine(date, datetime.time.min),
                            datetime.datetime.combine(date, datetime.time.max))} 

因为它非常冗长,所以有一些计划来改进__date接线员。

扫码关注云+社区