Mysql总和两列时间戳

时间:2012-06-21 09:02:17

标签: mysql time

我有列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

任何人都可以帮我编写精确查询以获取所有列的时间和总和作为总计

提前致谢

3 个答案:

答案 0 :(得分:2)

你试过吗?

SELECT ADDTIME(time1, time2);

答案 1 :(得分: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

答案 2 :(得分:0)

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

将您的列投射到TIME类型并从中受益:

SELECT Mon + Tue