我试图过滤一个DateTimeField与日期比较。我的意思是:
MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22))
我得到一个空的查询集列表作为答案,因为(我认为)我没有考虑时间,但我想要“任何时间”。
Django中有简单的方法来做这个吗?
我在datetime中设置了时间,不是00:00。
我试图过滤一个DateTimeField与日期比较。我的意思是:
MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22))
我得到一个空的查询集列表作为答案,因为(我认为)我没有考虑时间,但我想要“任何时间”。
Django中有简单的方法来做这个吗?
我在datetime中设置了时间,不是00:00。
当前回答
假设active_on是一个日期对象,将其增加1天,然后执行range
next_day = active_on + datetime.timedelta(1)
queryset = queryset.filter(date_created__range=(active_on, next_day) )
其他回答
你可以这样做
MyObject.objects.filter(datetime_field__date=datetime.date(2009,8,22))
或者如果你想在两个日期之间过滤
MyObject.objects.filter(
datetime_field__date__range=(datetime.date(2009,8,22), datetime.date(2009,9,22))
)
Model.objects.filter(datetime__year=2011, datetime__month=2, datetime__day=30)
请参阅文章Django文档
ur_data_model.objects.filter(ur_date_field__gte=datetime(2009, 8, 22), ur_date_field__lt=datetime(2009, 8, 23))
现在Django在开发版本中有__date queryset过滤器来根据日期查询datetime对象。因此,它将很快在1.9中可用。
嗯. .我的解决方案是有效的:
Mymodel.objects.filter(date_time_field__startswith=datetime.datetime(1986, 7, 28))