1

我正在创建一个简单的项目,我在员工上班迟到时计算员工出勤率和其他事情,我必须输入延迟时间,例如员工迟到 30 分钟上班,所以我将在 30:00 或00:30:00 ,在每个月、周或天的月底,我想计算时间,例如 30 分钟 + 1H + 25 分钟,在每个月的月底我会得到所有这些小时的总和和分钟的报告,报告将显示我的平均时间和总和。

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

我在报告中得到的是显示我输入的时间与 AM/PM 的总和,这不是我想要的。

这是 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`
4

1 回答 1

0

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

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

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

例如 01:38:50、03:40:25 --> 理想情况下应该是 05:19:15

  • 如果你做 Sum(以上两个) --> 你会得到一个数字
  • 如果你使用 CAST(Sum(the above two) AS TIME) --> 你会得到 null
  • 我的代码片段中还显示了另外两种可能性。

示例代码参考。它将向您展示我们刚刚讨论的不同结果。就目前而言,似乎三种方式格式化会有所帮助。

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

报告给 MySQL 的错误尚未纠正。

于 2012-11-16T05:00:48.557 回答