Search code examples
djangodjango-queryset

Django filter query when two datetime columns have same date


I want to filter a Django queryset when two datetime columns have the same date.

I have tried the following two codes that do not work :

drivers = drivers.filter(deleted_at__date=F("created_at__date"))

and

drivers = drivers.filter(deleted_at__date=F("created_at"))

Solution

  • I have found this solution. This is not as nice as my first try above, but it works :

    drivers = (
        drivers.annotate(created_at_date=TruncDate("created_at"))
        .filter(deleted_at__date=F("created_at_date"))
    )
    

    An even simpler solution is:

    drivers = drivers.filter(deleted_at__date=TruncDate("created_at"))