我将datetime
保存在对象的数据库中。我想查询数据库并从今天date
中选择任何内容,而不是日期时间。
最简单的方法是什么?这不起作用:
invoice_for_today = Invoice.objects.get(user=user, date=date.today())
答案 0 :(得分:48)
我记得有计划添加__date
字段查找以使其更容易,但因为它是“标准”的做法是
today_min = datetime.datetime.combine(datetime.date.today(), datetime.time.min)
today_max = datetime.datetime.combine(datetime.date.today(), datetime.time.max)
Invoice.objects.get(user=user, date__range=(today_min, today_max))
答案 1 :(得分:23)
您也可以这样做:
today = date.today()
invoice_for_today = Invoice.objects.filter(date__year=today.year, date__month=today.month, date__day=today.day)
答案 2 :(得分:17)
在django< 1.9
from django.utils.timezone import datetime #important if using timezones
today = datetime.today()
foo_for_today = Foo.objects.filter(datefield__year=today.year, datefield__month=today.month, datefield__day=today.day)
在django> 1.9中,因为他们added the date keyword
foo_for_today = Foo.objects.filter(datefield__date=datetime.date.today())
答案 3 :(得分:8)
obj = TeachersPlanner.objects.filter(date__startswith = date.today())
答案 4 :(得分:6)
尝试使用密钥date__gte
和date__lte
。您可以传入两个日期时间对象,标记您想要匹配的边界。
答案 5 :(得分:4)
在Django 1.9中有一个新的__date字段查找,您可以使用:
Entry.objects.filter(pub_date__date = datetime.date(2005,1,1)) Entry.objects.filter(pub_date__date__gt = datetime.date(2005,1,1))
答案 6 :(得分:1)
要从过去24小时获取条目,您可以使用:
com0com