【发布时间】:2015-09-06 22:08:55
【问题描述】:
我在 MySQL(实际上是 MariaDB)数据库上运行 Django 应用程序。
我的 Django 模型如下所示:
from django.db import models
from django.db.models import Avg, Max, Min, Count
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"),
min=Min('my_date'),
max=Max('my_date'),
avg=Avg('my_date'),
)
)
当我运行get_stats() 时,我得到以下日志行:
[2015-06-21 09:45:40] INFO [all_logs:96] [{'my_string': u'A', 'count': 2, 'avg': 20080507582679.5, 'min': datetime.datetime(2007, 8, 2, 11, 33, 53, tzinfo=<UTC>), 'max': datetime.datetime(2009, 2, 13, 5, 20, 6, tzinfo=<UTC>)}]
我遇到的问题是数据库返回的 my_date 字段的平均值是:20080507582679.5。仔细看看那个数字。这是无效的日期格式。
为什么数据库没有为这两个日期的平均值返回一个有效值?如果描述的方式失败,我如何获得该字段的实际平均值? Django DateTimeField 是否未设置为处理平均?
【问题讨论】:
标签: python mysql django django-models mariadb