Как фильтровать по дате с помощью поля datetimefield в Django с MYSQL

Поле Datetime в MYSQL нельзя фильтровать по дате.

    class Data(models.Model):
        created_at = models.DateTimeField(default=timezone.now)

Как и в документации, его можно отфильтровать по дате:

  qs = Data.objects.fitler(created_at__date__lte=datetime.date(2022, 1, 1))

Это прекрасно работает с sqlite3, но всегда возвращает пустой набор запросов с MYSQL.

Сначала вам нужно преобразовать дату в объект datetime. В вашем случае преобразуйте '2022-01-01' как:

from datetime import datetime

date_object = datetime.strptime("2022-01-01", "%Y-%m-%d")

# Then you can filter it as
qs = Data.objects.fitler(created_at__date__lte=date_object)

Вернуться на верх