[英]In django, how to annotate(group by) date from a datetime field with MYSQL
定義為
class Data(models.Model):
created_at = models.DateTimeField(default=timezone.now)
number = models.IntegerField(default=1)
要求是從created_at
中按date
獲取sum
,我正在使用。
qs = Data.objects.values('created_at__date').annotate(sum=Sum('number'))
上述查詢在 sqlite3 上運行良好,但在 MySql 時失敗。在 MySql 中,它返回單個結果<QuerySet [{'created_at__date': None, 'sum': 100}]>
除外:
<QuerySet [
{'created_at__date': datetime.date(2021, 7, 12), 'sum': 50},
{'created_at__date': datetime.date(2021, 7, 13), 'sum': 50}
]>
找到了解決方案,試試這個方法:
qs = Data.objects.annotate(sum=Sum('number')).annotate(created_at__date=TruncDate('created_at')).values("created_at__date","sum")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.