下表包含已发生的轮班记录。开始和结束字段是这些班次的开始和结束时间戳记。我正在寻找一个查询,以提取轮班所覆盖的每月总时数。
示例表:
ID Start End
1 2018-10-23 10:30:00 2018-10-23 11:45:00
2 2018-10-22 22:00:00 2018-10-22 23:00:00
3 2018-11-22 22:00:00 2018-11-22 23:00:00
理想输出为:
Month Hours
10 2:15
11 1:00
我已经使用SUM(timediff(end,start))和GROUP BY解决了一些问题,但是并没有取得好成绩!
谢谢!
答案 0 :(得分:0)
您在这里:
OpenFileDialog of = new OpenFileDialog();
of.Filter = "CSV files (*.csv)|*.csv|Excel Files|*.xls;*.xlsx";
结果:
select
month(start) as month,
time_format(sec_to_time(
sum(timestampdiff(second, start, end))
), '%H:%i') as hours,
sum(timestampdiff(second, start, end)) as seconds
from shift
group by month(start)
注意:我添加了额外的列month hours seconds
----- ----- -------
10 02:15 8,100
11 01:00 3,600
,以防您想使用此数字值进行一些额外的处理。