如何计算我的结肠的时间总和,称为“时间花费”,格式为:HH:mm 在SQL?我正在使用MySQL。
我的专栏类型是时间。
它有这种结构
TimeFrom like 10:00:00 12:00:00 02:00:00 TimeUntil 08:00:00 09:15:00 01:15:00 Time spent total time 03:15:00
答案 0 :(得分:69)
SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `timeSpent` ) ) ) AS timeSum
FROM YourTableName
这对我有用。希望这会有所帮助。
答案 1 :(得分:4)
100%工作代码以获取MYSQL数据库的时间总和:
SELECT
SEC_TO_TIME( SUM(time_to_sec(`db`.`tablename`)))
As timeSum
FROM
`tablename`
尝试并确认。 感谢。
答案 2 :(得分:0)
如果timeSpent
列的数据类型为TIME
,您应该能够使用以下查询:
SELECT SUM(timeSpent)
FROM YourTableName -- replace YourTableName with the actual table name
但是,如果不是这种情况,您可能必须使用强制转换转换为Time
数据类型。这样的事情应该有效:
SELECT SUM(timeSpent - CAST('0:0:0' as TIME))
FROM YourTableName -- replace YourTableName with the actual table name
答案 3 :(得分:0)
在MySQL中,你会做这样的事情来获得时间间隔:
SELECT TIMEDIFF('08:00:00', '10:00:00');
然后添加时间间隔,您可以:
SELECT ADDTIME('01:00:00', '01:30:00');
很遗憾,您没有存储日期或使用24小时制,因此这些计算结果不正确,因为TimeUntil
实际上低于TimeFrom
。
另一种方法是(假设你解决上述问题)使用TIMESTAMPDIFF()
将时间间隔存储为秒:
UPDATE my_table SET time_spent=TIMESTAMPDIFF(start, end));
SELECT SEC_TO_TIME(SUM(time_spent)) FROM my_table;