mysql时间戳不显示Days

时间:2017-08-07 12:09:58

标签: mysql database date

我使用Date_format()但由于某种原因它没有告诉我这些日子,它只是告诉我时间。例如,如果时间是51:01,它只显示03:00(48 + 3),如果时间是24:02,它只显示我12:02。

任何人都知道我应该使用什么?我计算2016年和2017年工人的最长工时。

这是我的代码:

select Year(Date) AS Year,WorkerID, 
       Date_format(sec_to_time(sum(time_to_sec(goes)-time_to_sec(comes))), '%h:%i') as H 
FROM Info 
Group by Year, WorkerID

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是使用十进制小时:

select Year(Date) AS Year, WorkerID, 
       (sum(time_to_sec(goes) - time_to_sec(comes))) / 3600 as decimal_hours 
from Info 
Group by Year, WorkerID;

如果你真的想要,你可以使用`concat将它变成HH:MM格式:

select Year(Date) AS Year, WorkerID, 
       concat_ws(':',
                 floor( (sum(time_to_sec(goes) - time_to_sec(comes))) / 3600),
                 lpad(floor(sum(time_to_sec(goes) - time_to_sec(comes))) / 60) % 60, 2, '0')
                 )
from Info 
Group by Year, WorkerID;