You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL统计当月总工时?现有查询结果不符合需求求修正

解决总工时统计为整数小时的问题

我来帮你搞定这个统计问题!先看你的SQL语句,有两个需要调整的地方,另外要得到你想要的整数小时数,我们需要对总分钟数做整数转换处理:

1. 修正字段拼写错误

你的数据表字段是working_hours和working_mint,但SQL里写成了working_hour和working_minit——这会导致数据库找不到对应字段,先把这个拼写问题修正过来。

2. 转换总分钟数为整数小时

你当前的计算得到的是总分钟数,要转换成整数小时,需要把总分钟数除以60并取整数部分(比如250分钟就是4小时,舍去多余的10分钟)。这里有两种常用方法:

方法一:使用FLOOR()函数向下取整

SELECT FLOOR( (SUM(working_hours)*60 + SUM(working_mint)) / 60 ) AS total_hours
FROM task_details
WHERE MONTH(task_date) = MONTH(CURRENT_DATE()) 
  AND YEAR(task_date) = YEAR(CURRENT_DATE()) 
  AND task_id=7797 
  AND member_id=92;

方法二:使用整数除法DIV(MySQL专属语法)

SELECT (SUM(working_hours)*60 + SUM(working_mint)) DIV 60 AS total_hours
FROM task_details
WHERE MONTH(task_date) = MONTH(CURRENT_DATE()) 
  AND YEAR(task_date) = YEAR(CURRENT_DATE()) 
  AND task_id=7797 
  AND member_id=92;

逻辑说明

  • SUM(working_hours)*60:把所有记录的小时数统一转换成分钟,方便和分钟字段相加
  • + SUM(working_mint):得到当月的总分钟数
  • FLOOR(...) / 60 或 DIV 60:将总分钟数转换成整数小时,自动舍去小数部分,得到你需要的4、8这类整数结果

如果你的需求是四舍五入(比如250分钟算5小时),只需要把FLOOR()换成ROUND()就可以啦。

内容的提问来源于stack exchange,提问作者Sandip Sanghani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:07:05