Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SUM()时间格式错误_Mysql_Time_Sum - Fatal编程技术网

Mysql SUM()时间格式错误

Mysql SUM()时间格式错误,mysql,time,sum,Mysql,Time,Sum,我正在使用sum()计算同一个表中两列的总和,但最终结果是一个整数(286676)。我猜是毫秒?如何转换为时间(00:00:00) 数据库 id|hours_worked | hours_worked_wk2 | 工作时间=14:33:38 工作时间\u工作周2=14:33:38 查询 SELECT *,SEC_TO_TIME(SUM(TIME_TO_SEC(ep.hours_worked)))+SEC_TO_TIME(SUM(TIME_TO_SEC(ep.hours_worked_wk2))

我正在使用
sum()
计算同一个表中两列的总和,但最终结果是一个整数(
286676
)。我猜是毫秒?如何转换为时间(00:00:00)

数据库

id|hours_worked | hours_worked_wk2 |
工作时间=14:33:38 工作时间\u工作周2=14:33:38

查询

SELECT *,SEC_TO_TIME(SUM(TIME_TO_SEC(ep.hours_worked)))+SEC_TO_TIME(SUM(TIME_TO_SEC(ep.hours_worked_wk2))) 
AS TotalHoursWorked 
FROM employeepayroll ep 
JOIN employees em ON ep.employee_id=em.employee_id 
JOIN payroll p ON ep.payroll_id=p.payroll_id 
JOIN payrolltaxes pt ON ep.payroll_id=pt.payroll_id 
WHERE ep.timesheet_status='Approved' AND p.pay_group='26' 
ORDER BY ep.payroll_id DESC 

总工作小时数=286676

使用以下公式

hours = cast(duration_in_milliseconds \ (60 * 60 * 1000) as int)  
mins = (duration_in_milliseconds \ (60 * 1000)) mod 60  
secs = (duration_in_milliseconds \ 1000) mod 60  
您的查询将如下所示:

select cast(duration_in_milliseconds\(60*60*1000) as int)+':'((duration_in_milliseconds \ (60*1000)) mod 60;)+':'((duration_in_milliseconds \ 1000) mod 60) from something
当你看到它的时候

14:33:38 >>> 143,338 × 2 = 286,676
哎呀。时间中的数字被隐式转换为整数

您正在添加两个值
SEC\u TO\u TIME(SUM(…)+SEC\u TO\u TIME(SUM(…)


相反,使用
秒到秒时间(SUM(…)+SUM(…)

是的,我知道。我刚刚给了你一个公式:)你可以在你的查询中亲自编辑它。好吧,谢谢你,伙计,但我现在的学习真的太简单了。如何将其用于我的原始查询loll?