首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Django中过滤DateTimeField的日期?

如何在Django中过滤DateTimeField的日期?
EN

Stack Overflow用户
提问于 2009-08-23 03:52:08
回答 17查看 231.1K关注 0票数 201

我正在尝试过滤与日期进行比较的DateTimeField。我的意思是:

代码语言:javascript
复制
MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22))

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

在Django中有什么简单的方法可以做到这一点吗?

我设置了datetime中的时间,它不是00:00

EN

回答 17

Stack Overflow用户

发布于 2009-12-29 18:23:03

这样的查找在django.views.generic.date_based中实现如下:

代码语言:javascript
复制
{'date_time_field__range': (datetime.datetime.combine(date, datetime.time.min),
                            datetime.datetime.combine(date, datetime.time.max))} 

因为它相当冗长,所以有计划使用__date运算符来改进语法。查看"#9596 Comparing a DateTimeField to a date is too hard“了解更多详细信息。

票数 118
EN

Stack Overflow用户

发布于 2009-08-23 04:02:36

代码语言:javascript
复制
YourModel.objects.filter(datetime_published__year='2008', 
                         datetime_published__month='03', 
                         datetime_published__day='27')

//注释后编辑

代码语言:javascript
复制
YourModel.objects.filter(datetime_published=datetime(2008, 03, 27))

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

票数 113
EN

Stack Overflow用户

发布于 2015-08-28 20:44:38

现在Django有了__date查询集过滤器来根据开发版本中的日期查询datetime对象。因此,它将很快在1.9中可用。

票数 59
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1317714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档