使用MySQL计算小时数

时间:2012-11-15 17:26:34

标签: mysql

我正在创建一个简单的项目,我计算员工的出勤率和其他事项 当员工上班迟到时,我必须输入延迟时间,例如 员工上班迟到30分钟,所以我会在30:00或00:30:00进入现场,在每个月,周或日结束时,我想计算时间,如30分钟+ 1H + 25分钟,在每个月末,我将获得报告中所有小时和分钟的总和,报告将显示平均值和当时的总和。

以下字段(时间记录在持续时间,总通话时间,工作时间,未准备好时间)我想计算小时和分钟。

我在报告中得到的结果显示我在上午和下午时间输入的小时数的总和,这不是我正在寻找的。

这是MySQL查询

SELECT
ID,
`Date`,
`Shift Time`,
`In charge`,
`Agent Name`,
Attendance,
Timing,
`Logged in Duration`,
`Total Talking Time`,
`Work Time`,
`Not ready Time`,
`Calls Handled`,
RNA,
`Shift Calls Presented`,
`Shift Calls Handled`,
`HD Calls Abandoned`,
`Upload Your Report`
FROM `shift report`

1 个答案:

答案 0 :(得分:0)

我以为我会在总结时间价值相关问题的开发人员,用户迄今为止所面临的问题上发布答案。这不仅仅是格式化。

您可能已经或可能没有注意到,您的总时间的可能性总和可能被引擎计算错误。进一步的mysql引擎可能会返回null,尽管你有值。

当您添加/聚合时间值时,它将转换为数字,结果将采用数字格式。如果您尝试添加如下所示的时间值:

e.g。 01:38:50,03:40:25 - >理想情况下应该导致05:19:15

  • 如果你做Sum(以上两个) - >你得到一个号码
  • 如果您使用CAST(Sum(以上两个)AS TIME) - >你得到零
  • 我的代码段中还显示了另外两种可能性。

Sample code reference。它将向您展示我们刚才讨论的不同结果。至于现在,似乎三种格式化可能有所帮助。

time_format(sec_to_time(sum(time_to_sec(logged_duration))),'%h:%i:%s') total_log_duration

The bug reported to MySQL is not rectified yet.