Есть ли способ "сгруппировать" по дате с помощью Django.models, когда у моего поля MySQL также есть часы / мин / секунда?

Я хочу сделать запрос к MySQL, используя Django.models, но так как я created_at (Поле даты и времени) с datetime.datetime.now()Кажется, трудно "группировать" с каждой датой. Я сделал запрос, как это:

start = time.strptime("2012/6/25","%Y/%m/%d")
end = time.strptime("2012/6/26","%Y/%m/%d")
unix_start= time.mktime(start)
unix_end = time.mktime(end)

Mymodels.objects.filter(created_at__range[datetime.datetime.fromtimestamp(unix_start),datetime.datetime.fromtimestamp(unix_end]).values("~~~~~").annotate(player_id=Counт ("player_id"))

но я предполагаю, что этот запрос слишком тяжел для сети. Есть ли способ "сгруппировать по" по datetime.date или использовать (date () для MySQL) в Django.models, когда мои данные MySQL - datetime.datetime.now()?

1 ответ

Решение

Я использую PostgreSQL date_trunc() группировать значения по дате, когда даты сохраняются как Datetime. Я думаю, что вы можете использовать что-то вроде этого с MySQL:

select_date = {"date": """DATE_FORMAT(start, '%Y-%m-%d')"""}
query = query.extra(select=select_date).values('date')
query = query.annotate(player_id=Count('player_id', distinct=True)).order_by('date')
Другие вопросы по тегам