如何以 HH:MM:SS 格式获得具有精确值的时间字段的正确 sum()
Posted
技术标签:
【中文标题】如何以 HH:MM:SS 格式获得具有精确值的时间字段的正确 sum()【英文标题】:How can I get the correct sum() of time fields with exact value in HH:MM:SS format 【发布时间】:2016-11-08 00:19:56 【问题描述】:我在 phpMyAdmin 使用了类似于下面的查询:
SELECT id, name, group_concat(timecomplete) AS 'Timelist', sum(timetaken) AS 'Total Time'
FROM dailysummarylog
这是我的查询生成的:
身份证 | 姓名 | 时间表 | 总时间 1 |员工 1 |06:35:15,00:59:54,01:24:45 | 81914 2 |员工 2 |02:44:42,00:59:36,00:15:10 | 31888问题 #1: 我在 Timelist 上使用 sum() 来获取 Total Time 但它没有显示正确的总数。当我尝试计算它时,总时间应该如下:
1: 8 小时 59 分 54 秒 2: 3 小时 59 分 28 秒问题 #2: 当我尝试使用 PHP 将其存储到另一个表中时,Timelist 和 Total Time仅显示第一个值> 员工 2 显示“00:00:00”。对于员工 1,它显示“08:19:14”
其他信息: Timelist 和 Total Time 都设置为“时间”类型。
【问题讨论】:
在不知道您的数据是什么样子的情况下,没有人可以做任何事情。请一次只问一个问题。 我会在 php 中处理第 2 部分 在第 2 部分中,我在 PHP 中使用“mysqli_query”然后 INSERT INTO 生成另一个表,其中包含第 1 部分生成的结果。 【参考方案1】:问题 1 的答案使用 SEC_TO_TIME 和 TIME_TO_SEC FUNCTIONS
SELECT id, name, group_concat(timecomplete) AS 'Timelist', SEC_TO_TIME(sum(TIME_TO_SEC((timetaken))) AS 'Total Time'
FROM dailysummarylog group by name;
【讨论】:
这解决了我的第一个和第二个问题。我只是设置了 SEC_TO_TIME(sum(TIME_TO_SEC(timetaken)))。非常感谢!以上是关于如何以 HH:MM:SS 格式获得具有精确值的时间字段的正确 sum()的主要内容,如果未能解决你的问题,请参考以下文章
如何在Java中以字符串格式获取当前时间戳? “yyyy.MM.dd.HH.mm.ss”
如何在 Excel 上将“dd:hh:mm:ss”格式转换为数字类型?