鉴于以下情况Contribution
model:
class Contribution(models.Model):
start_time = models.DateTimeField()
end_time = models.DateTimeField(null=True)
是否可以使用 Django 数据库 API 重现以下 SQL 语句?
SELECT SUM(end_time - start_time) AS total_duration FROM contribution;
我已经弄清楚了这么多:
Contribution.objects.aggregate(total_duration=models.Sum( ??? ))
但我不确定如何表示end_time - start_time
部分。谢谢!
目前不可能,有一个ticket http://code.djangoproject.com/ticket/10972对于聚合内的 F() 对象,但没有什么希望。
我看到的唯一方法是通过 python 中的 sum 来解决:
sum([x[1]-x[0] for x in Contribution.objects.values_list('start_time', 'end_time')])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)