使用sql计算types时间的总和

如何计算我的这个格式为“timeSpent”的时间总和:HH:mm在SQL中? 我正在使用MySQL。

我的专栏的types是时间。

它有这个结构

时间从10:00:00 12:00:00 02:00:00
 TimeUntil 08:00:00 09:15:00 01:15:00
所花费的时间      

总时间03:15:00
 SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `timeSpent` ) ) ) AS timeSum FROM YourTableName 

这对我有效。 希望这可以帮助。

看看这个post ,我想涵盖你在问什么。

如果timeSpent列的数据types是TIME ,则应该可以使用以下查询:

 SELECT SUM(timeSpent) FROM YourTableName -- replace YourTableName with the actual table name 

但是,如果不是这种情况,则可能必须使用强制转换才能转换为Time数据types。 像这样的东西应该工作:

 SELECT SUM(timeSpent - CAST('0:0:0' as TIME)) FROM YourTableName -- replace YourTableName with the actual table name 

在MySQL中,你可以这样做来获得时间间隔:

 SELECT TIMEDIFF('08:00:00', '10:00:00'); 

然后添加时间间隔,你会这样做:

 SELECT ADDTIME('01:00:00', '01:30:00'); 

不幸的是,你没有存储date或使用24小时的时间,所以这些计算结果会不正确,因为你的TimeUntil实际上比你的TimeFrom低。

另一种方法是(假设你解决了上述问题)使用TIMESTAMPDIFF()将时间间隔存储为秒数:

 UPDATE my_table SET time_spent=TIMESTAMPDIFF(start, end)); SELECT SEC_TO_TIME(SUM(time_spent)) FROM my_table; 

100%的工作代码,以获得MYSQL数据库的时间总和:

 SELECT SEC_TO_TIME( SUM(time_to_sec(`db`.`tablename`))) As timeSum FROM `tablename` 

尝试并确认。 谢谢。