簡體   English   中英

在 django 中,如何使用 MYSQL 從日期時間字段注釋(分組依據)日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM