如何编写Django QuerySet来获取DateTimeField的UNIX_TIMESTAMP?

时间:2015-07-07 17:56:44

标签: python mysql django django-models

这个问题是对here {/ p>}的跟进

假设我有以下Django模型:

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

class myModel(models.Model):
    my_string = models.CharField(max_length=32,)
    my_date = models.DateTimeField()

    @staticmethod
    def get_stats():            
        logger.info(myModel.objects.values('my_string').annotate(
                count=Count('my_string'), 
                sum=Sum(F('my_date')+0)), #THIS NEEDS TO CHANGE. TO WHAT??
            )
        )

我想计算MySQL表达式my_date的总和,而不是计算UNIX_TIMESTAMP('my_date')的和。如何修改上面的Django QuerySet来实现它?

注意:这个问题不是this one的重复,因为我问如何从QuerySet中获取此值(IE:如何让数据库返回此值)。在那个问题上,没有数据库。它是直接的非Django python。我正在使用Django。

1 个答案:

答案 0 :(得分:1)

查看func-expressions

from django.db.models import Func, F, Sum

queryset.annotate(sum=Sum(Func(F('my_date'), function='UNIX_TIMESTAMP')))