使用MySQL计算小时数

使用MySQL计算小时数,mysql,Mysql,我正在创建一个简单的项目,计算员工出勤率和其他事情 例如,当员工上班迟到时,我必须输入延迟时间 员工上班迟到30分钟,因此我将在30:00或00:30:00字段中输入,在每个月、周或日结束时,我要计算时间,例如30分钟+1小时+25分钟,在每个月结束时,我将在报告中获得所有小时和分钟的总数,报告将显示该时间的平均值和总和 以下字段(计时登录持续时间、总通话时间、工时、时间未准备就绪时间)我要计算小时和分钟 我在报告中得到的是我输入的AM/PM时间的小时总数,这不是我想要的 这是MySQL查询 我

我正在创建一个简单的项目,计算员工出勤率和其他事情 例如,当员工上班迟到时,我必须输入延迟时间 员工上班迟到30分钟,因此我将在30:00或00:30:00字段中输入,在每个月、周或日结束时,我要计算时间,例如30分钟+1小时+25分钟,在每个月结束时,我将在报告中获得所有小时和分钟的总数,报告将显示该时间的平均值和总和

以下字段(计时登录持续时间、总通话时间、工时、时间未准备就绪时间)我要计算小时和分钟

我在报告中得到的是我输入的AM/PM时间的小时总数,这不是我想要的

这是MySQL查询
我想我会从总结开发人员、用户到目前为止所面临的时间价值相关问题的角度向您发布答案。这不仅仅是关于格式

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

当您添加/聚合时间值时,它将转换为数字,结果将以数字格式显示。如果尝试按如下方式添加时间值:

e、 g.01:38:50,03:40:25-->的理想结果应该是05:19:15

  • 如果对(以上两个)求和-->则得到一个数字
  • 如果使用CAST(和(以上两个)作为时间)-->则会得到null
  • 我的代码片段中还显示了另外两种可能性
。它将向您展示我们刚才讨论的不同结果。就目前而言,似乎三种方式的格式可以有所帮助

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

例如,将总和(总通话时间)与格式一起使用。e、 g.接下来,按员工分组。您能管理它吗?将分钟保存为Int字段可能更容易。使计算更容易。无论如何,如果您还没有管理格式,请使用此工具查看
time_format(sec_to_time(sum(time_to_sec(logged_duration))),'%h:%i:%s') total_log_duration