Compare date and datetime in Django Compare date and datetime in Django django django

Compare date and datetime in Django


Since somewhere in 2015:

YourModel.objects.filter(some_datetime__date=some_date)

i.e. __date after the datetime field.

https://code.djangoproject.com/ticket/9596


There may be a more proper solution, but a quick workup suggests that this would work:

from datetime import timedeltastart_date = timezone.now().date()end_date = start_date + timedelta( days=1 ) Entry.objects.filter(created__range=(start_date, end_date))

I'm assuming timezone is a datetime-like object.

The important thing is that you're storing an exact time, down to the millisecond, and you're comparing it to something that only has accuracy to the day. Rather than toss the hours, minutes, and seconds, django/python defaults them to 0. So if your record is createed at 2011-4-6T06:34:14am, then it compares 2011-4-6T:06:34:14am to 2011-4-6T00:00:00, not 2011-4-6 (from created date) to 2011-4-6 ( from timezone.now().date() ). Helpful?


Try this

from datetime import datetimenow=datetime.now()YourModel.objects.filter(datetime_published=datetime(now.year, now.month, now.day))