使用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`
尝试并确认。 谢谢。