【问题标题】:How to write Django QuerySet to get UNIX_TIMESTAMP of a DateTimeField?如何编写 Django QuerySet 来获取 DateTimeField 的 UNIX_TIMESTAMP?
【发布时间】:2015-09-25 09:05:42
【问题描述】:

这个问题是here 的后续问题。

假设我有以下 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 表达式 UNIX_TIMESTAMP('my_date') 的总和,而不是计算 my_date 的总和。我怎样才能修改上面的 Django QuerySet 来完成呢?

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

【问题讨论】:

    标签: python mysql django django-models


    【解决方案1】:

    func-expressions

    from django.db.models import Func, F, Sum
    
    queryset.annotate(sum=Sum(Func(F('my_date'), function='UNIX_TIMESTAMP')))
    

    【讨论】:

      猜你喜欢
      • 2015-02-04
      • 2015-04-29
      • 1970-01-01
      • 2019-01-22
      • 2020-11-11
      • 2017-08-25
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      相关资源
      最近更新 更多