为什么 django 模型日期过滤器生成前一天的查询
why django model date filter generates query with a day before
import datetime
d = datetimte.datetime.today()
print d
2015-01-02 03:59:48.392104
print CourseDay.objects.filter(date__exact=d).query
SELECT `website_courseday`.`id`, `website_courseday`.`date`,
`website_courseday`.`presentation_id` FROM `website_courseday`
WHERE `website_courseday`.`date` = 2015-01-01 22:29:48
为什么它生成值前一天的日期?
我正在使用 django 1.4.10,mysql 作为数据库服务器。
您的主要问题似乎是混淆了 datetime
个对象和 date
个对象。
(我假设 CourseDay
的 date
字段是 DateField
,因为 __exact
查询对于 DateTimeField
.)
如果你只关心当地时间(如果你有 USE_TZ=False
似乎就是这种情况),解决方案很简单:
import datetime
d = datetime.date.today() # note the difference
CourseDay.objects.filter(date__exact=d) # should work as you expect
import datetime
d = datetimte.datetime.today()
print d
2015-01-02 03:59:48.392104
print CourseDay.objects.filter(date__exact=d).query
SELECT `website_courseday`.`id`, `website_courseday`.`date`,
`website_courseday`.`presentation_id` FROM `website_courseday`
WHERE `website_courseday`.`date` = 2015-01-01 22:29:48
为什么它生成值前一天的日期?
我正在使用 django 1.4.10,mysql 作为数据库服务器。
您的主要问题似乎是混淆了 datetime
个对象和 date
个对象。
(我假设 CourseDay
的 date
字段是 DateField
,因为 __exact
查询对于 DateTimeField
.)
如果你只关心当地时间(如果你有 USE_TZ=False
似乎就是这种情况),解决方案很简单:
import datetime
d = datetime.date.today() # note the difference
CourseDay.objects.filter(date__exact=d) # should work as you expect