2012-06-21 111 views
0

我已经列周一,周二,周三,周四,周五,周六,周日在次表时间戳每天到项目Mysql的总和两列的时间戳

我需要通过增加花费的时间总和项目的所有列。

我实际的查询是这样的 -

我其实查询是这样的 - 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

谁能帮我写准确的查询来获取所有列的时间和金额作为总

在此先感谢

回答

1

我不认为有一个时间函数,需要超过两个参数来总结它们。
下面的代码片段可能对你有帮助:

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 

请注意,此查询只返回所用时间的小时部分。如果存在任何问题,您将丢失分钟和秒钟。

更新
下面的代码片段可以给你总小时和分钟花费。

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

是的..它返回7行,我们如何使用相同的查询得到最终总和。谢谢 – Sri

+0

@Sri没有第二个片段帮助你吗? –

+0

Shud我结合了两个查询? 。我尝试了第一个。 – Sri

0

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

投下你列TIME类型并从中受益:

SELECT Mon + Tue 
2

您是否尝试过?

SELECT ADDTIME(time1, time2);