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

问题描述 投票:1回答:1

你好,我想把一个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)。

django-orm
1个回答
1
投票

你可以使用 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')
© www.soinside.com 2019 - 2024. All rights reserved.