Есть ли способ "сгруппировать" по дате с помощью 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')