我有一个queryste:
winner_check = Winner.objects.filter(win_date=date.today())
其中win_date是datetime,date.today()仅给出日期...无论如何我可以将win_date转换为仅日期并过滤此查询集。
我想过滤所有具有相同日期的获奖者。
提前致谢。
答案 0 :(得分:1)
你做不到。但是您可以从2个日期时间创建范围并通过它过滤您的查询集。您也可以按win_date__year
,win_date__month
和win_date__day
单独过滤。
答案 1 :(得分:1)
您可以使用__year
,__month
和__day
:
today = date.today()
Winner.objects.filter(win_date__year=today.year,
win_date__month=today.month,
win_date__day=today.day)
答案 2 :(得分:1)
最有效的方法是在今天/明天的日期之间使用两个日期时间之间的__range
查找或__gte
/ __lt
次查找的组合:
import datetime
today = datetime.date.today()
tomorrow = today + datetime.timedelta(days=1)
winner_check = Winner.objects.filter(win_date__gte=today,
win_date__lt=tomorrow)
这会导致win_date
从TODAY 0:00:00
过滤到TODAY 23:59:59