【问题标题】:Mysql sum two column timestampsMysql求和两列时间戳
【发布时间】:2012-06-21 09:02:17
【问题描述】:

我在时间表中有一个项目的 Mon、Tue、wed、thu、fri、sat、sun 列以及每天的时间戳

我需要通过添加项目的所有列来获得总小时数。

我的实际查询是这样的 -

我的实际查询是这样的 - SELECT time(SEC_TO_TIME(SUM(TIME_TO_SEC(fri))) + SEC_TO_TIME(SUM(TIME_TO_SEC(thu))) + SEC_TO_TIME(SUM(TIME_TO_SEC(tue)))) FROM timesheets WHERE project_id = 5

谁能帮我写一个准确的查询来获取所有列的时间和总和

提前致谢

【问题讨论】:

    标签: mysql time


    【解决方案1】:

    你试过了吗?

    SELECT ADDTIME(time1, time2);
    

    【讨论】:

      【解决方案2】:

      我认为不存在需要两个以上参数对它们求和的时间函数。
      以下 sn-p 可能对你有帮助:

      select 
          addtime( mon, addtime( tue, addtime( wed, addtime( thu, 
                   addtime( fri, addtime( sat, sun ) ) ) ) ) ) total_time_spent
      

      以上查询以hours:minutes:seconds 格式返回总花费时间。
      要仅选择总共花费的小时数,请使用 time_format 函数。

      select time_format( total_time_spent, '%H' ) total_hours_spent
      

      请注意,此查询仅返回所花费总时间的小时数部分。如果有的话,你会失去分钟和秒。

      更新
      跟随 sn-p 可以为您提供花费的总小时数和分钟数。

      select 
          time_format( 
              addtime( mon, addtime( tue, addtime( wed, addtime( thu, 
                  addtime( fri, addtime( sat, sun ) ) ) ) ) ),
              '%H:%i' ) total_hours_and_mins_spent
      

      【讨论】:

      • 是的.. 它返回 7 行,我们如何使用相同的查询获得最终总和。谢谢
      • @Sri 第二个 sn-p 对你没有帮助吗?
      • 谢谢,但我仍然需要知道所有天数的总和(小时:分钟),并且不能省略分钟和秒,因为这是为了生成收入报告
      • 非常感谢,我也尝试过 sum(time_format( addtime( mon .....)) 来获取总小时数,但结果显示错误,因为 (1.3 + 3.3 应该是 5 但结果是 4.6 )
      • @Sri 我的答案以'%H:%i' 格式返回总小时数作为记录。你为什么在这里使用sum 函数?您是否也在汇总其他记录的数据?
      【解决方案3】:

      MySQL documentation 中有一个很长的章节,关于日期和时间,包括解析、类型、转换和格式。

      将您的列转换为TIME 类型并从中受益:

      SELECT Mon + Tue
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-05
        • 2011-09-28
        • 1970-01-01
        相关资源
        最近更新 更多