【问题标题】:how to sum different values of time type in sql table如何在sql表中对不同的时间类型值求和
【发布时间】:2012-06-20 13:41:08
【问题描述】:

我的查询:

 SELECT (
 `total_hours`
)
FROM work_details
WHERE  `employee_id` =  '28'
AND DATE
BETWEEN  '2012-02-01'
AND  '2012-02-01'

LIMIT 0 , 30

//从数据库表work_details中获取给定员工在给定日期的总工作时间

结果:

total_hours
            02:27:29
            00:13:56
            03:03:49
            00:00:03
            00:30:20
            01:04:13

//result 显示员工在给定日期的工作时间,我需要获取这些值的总和才能找到给定日期的总工作时间。

如何获取字段中这些值的总和???

如果我使用 sum(total_hours) 结果将是

sum( total_hours ) 
67870 

这是不正确的。我在时间类型本身中需要它。

我还需要一个帮助,此查询有效,因为我为 BETWEEN 子句提供了相同的日期。

DATE
    BETWEEN  '2012-02-01'
    AND  '2012-02-01'

但我需要计算给定范围内的总工作时间,比如说

DATE
    BETWEEN  '2012-02-01'
    AND  '2012-02-29'

由于给定日期有多个总小时数条目,我需要获取每个不同日期的总小时数。帮助??

【问题讨论】:

  • 不,它不起作用,如果我使用 sum(total_hours) 结果将是 sum(total_hours) 67870,这是不正确的。我在时间类型本身中需要它。谢谢你:)
  • total_hours 是 varchar 字段吗?
  • 更多关于为什么 SUM(time) 在 MySQL 中不起作用的信息:bugs.mysql.com/bug.php?id=12108

标签: mysql


【解决方案1】:

试试这个(取自here):

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(`total_hours`))) ... -- rest of your query

【讨论】:

  • 哈哈 :) 它的工作原理 :) 再次感谢 :) 我还有一个疑问,你能帮忙吗?生病更新问题,
  • 还和这个问题有关吗?如果不是,您最好创建另一个问题,以避免在一个问题中混合不同的问题。
  • SELECT date,SEC_TO_TIME(SUM(TIME_TO_SEC(total_hours))) AS total FROM work_details WHERE employee_id = '28' AND DATE BETWEEN '2012-02-01' AND '2012-02 -29' GROUP BY DATE ORDER BY DATE 这对我有用,谢谢:)
  • 好像你自己想出了答案,接受不会被拒绝:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
  • 2020-05-10
  • 2019-07-11
  • 1970-01-01
  • 2022-12-06
相关资源
最近更新 更多