Django游标查询获取总时间

时间:2016-10-18 14:04:32

标签: mysql django

我有一个mysql查询来获取会话的总时间。查询是

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(end_time,start_time)))) as total FROM session where helper_mode = 1

当我在我的mysql GUI中运行此查询时,我得到了正确的结果

total   
35:34:27

但是当我使用django游标运行相同的查询时,我得到一个像

这样的异常
  

小时必须在0..23

我的cusror查询是,

cursor = connection.cursor()
cursor.execute("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(end_time,start_time)))) as total FROM session where helper_mode = 1")

当总时间超过24小时时发生。为什么我得到这个例外?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我希望问题是分配查询列值的Python对象(数据类型)。

Python time对象表示给定日期内的时间。因此,该值仅限于'00:00:00.000000''23:59:59.999999'之间的值。超出该范围的值对于time对象无效。

https://docs.python.org/3.6/library/datetime.html#time-objects

为了存储"持续时间",Python支持timedelta对象:

https://docs.python.org/3.6/library/datetime.html#datetime.timedelta