我有一个简单的基于Django构建的运行时间监控应用程序,它检查站点是否未响应ping请求。它在“dt”列中存储ping的时间戳,并在“ms”列中存储毫秒级响应时间。该站点每分钟被ping一次,并将条目放入数据库中。
Django模型如下:
class Uptime (models.Model):
user = models.ForeignKey(User)
dt = models.DateTimeField()
ms = models.IntegerField()
我希望能够从dt列中逐日获取数据,并计算每天的平均ms响应时间。虽然每天有1440个条目,但我只想获取某一天(例如2013年4月19日)并得到平均的ms响应时间。我使用的代码明显是错误的,但我感觉自己在正确的轨道上。请问如何让这段代码正常工作?
output_date = Uptime.objects.filter(user = request.user).values_list('dt', flat = True).filter(dt__range=(startTime, endTime)).order_by('dt').extra(select={'day': 'extract( day from dt )'}).values('day')
output_ms = Uptime.objects.filter(user = request.user).filter(dt__range=(startTime, endTime)).extra(select={'day': 'date( dt )'}).values('day').aggregate(Avg('ms'))
感谢您!