Django ORM按小时分组,不包括分钟。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django ORM按小时分组,不包括分钟。相关的知识,希望对你有一定的参考价值。

你好,我想把一个django查询按小时分组,不包括分钟。

让我举个例子。

[...]
date_example = models.DateTimeField("My Example", blank=True, null=True)
quantity = models.IntegerField("Quantity", default=1)
[...]

在我的头上,这个例子应该工作。

ModelExample.objects.values("date_example__hour").annotate(total_quantity=Sum("quantity"))

但输出考虑到分钟和秒。

有没有一种方法可以按小时分组,不包括分钟和秒?

例如:这个组里面有7个小时(7:00,7:20,7:45)。

答案

你可以使用 ExtractHour [Django-doc] 为此。

from django.db.models import Sum
from django.db.models import ExtractHour

ModelExample.objects.values(
    hour=ExtractHour('date_example')
).annotate(
    total_quantity=Sum('quantity')
).order_by('hour')

以上是关于Django ORM按小时分组,不包括分钟。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Django ORM 按周分组

在 Django ORM 中按查询分组

Django ORM如何获取按字段分组的原始值

Django ORM,group_by 按所有值分组

相当于按年分组的Django ORM查询集?

如何使用 django 查询集按小时对对象进行分组?