我想使用 Django.models 查询 MySQL,但由于我将 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
t("player_id"))
但我猜这个查询对于网络来说太繁重了。当我的 MySQL 数据是 datetime.datetime.now 时,有什么方法可以按 datetime.date “分组依据”或在 Django.models 中使用(date() for MySQL) ()?
最佳答案
当日期保存为 Datetime 时,我使用 PostgreSQL date_trunc()
按日期对值进行分组。我认为您可以在 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')
关于mysql - 当我的 MySQL 字段也有小时/分钟/秒时,有什么方法可以使用 Django.models 按日期计算 "group by"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11255833/