使用sql计算类型时间的总和

kaw*_*sse 32 mysql sql

如何计算我的冒号的时间总和称为"timeSpent"具有以下格式:HH:mm in 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

Sir*_*iri 71

SELECT  SEC_TO_TIME( SUM( TIME_TO_SEC( `timeSpent` ) ) ) AS timeSum  
FROM YourTableName  
Run Code Online (Sandbox Code Playgroud)

这对我有用.希望这可以帮助.

  • "TIME"项的最大绝对值是"838:59:59",或+/-"3020399"秒(不到35天).因此,当你在总和上使用`SEC_TO_TIME()`时,这个答案虽然正确,但可能会溢出.溢出被无声地截断到最大值.小心总结许多时间值. (4认同)

小智 6

从 MYSQL 数据库中获取时间总和的 100% 工作代码:

SELECT
SEC_TO_TIME( SUM(time_to_sec(`db`.`tablename`))) 
As timeSum
FROM
`tablename`
Run Code Online (Sandbox Code Playgroud)

尝试并确认。谢谢。

  • 与三年前发布的答案相同?为什么? (5认同)

Mik*_*scu 0

如果列的数据类型timeSpentTIME您应该能够使用以下查询:

SELECT SUM(timeSpent) 
  FROM YourTableName    -- replace YourTableName with the actual table name
Run Code Online (Sandbox Code Playgroud)

但是,如果情况并非如此,您可能必须使用强制转换来转换为Time数据类型。像这样的东西应该有效:

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