При создании запроса в бд по дате, джанго переводит в локальное время
Если создаёшь запрос по дате, например:
MyModel.objects.filter(my_datetime_field__date=utc_today)
Джанга локализует время, и находит данные не с 00:00, а с 21:00 вчерашней даты. Как изменить это поведение? Желательно для одного этого запроса. Нужно чтобы находил данные именно за текущие сутки по gmt.
ПС: Использую postgresql
Ответы (2 шт):
Автор решения: Andrey Maslov
→ Ссылка
Если utc_today это datetime, то должно помочь utc_today.utcnow()
Автор решения: inzem77
→ Ссылка
Скорее всего данные в БД хранятся с timezone. Подробнее https://docs.djangoproject.com/en/3.1/topics/i18n/timezones/ Если только для этого запрос, то можно так
from datetime import timedelta
MyModel.objects.filter(my_datetime_field__date=utc_today-timedelta(hours=3))