带有datetime和d的Django queryset过滤器

2024-09-30 18:17:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个疑问:

winner_check = Winner.objects.filter(win_date=date.today())

其中win_date是datetime和日期:今天()只给出日期。。。不管怎样,我是否可以将win_date转换为only date并过滤这个queryset。在

我想过滤所有有相同日期的获奖者。在

提前谢谢。在


Tags: onlytodaydatetimedateobjectscheckfilterwin
3条回答

您可以使用__year__month__day进行筛选:

today = date.today()
Winner.objects.filter(win_date__year=today.year,
                      win_date__month=today.month,
                      win_date__day=today.day)

docs

最有效的方法是在两个日期时间之间使用__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_dateTODAY 0:00:00过滤到{}

你不能。但是你可以创建2个日期时间范围,然后用它过滤你的查询集。您还可以分别按win_date__yearwin_date__month和{}进行过滤。在

相关问题 更多 >