0

我在时间表中的项目中有每天的时间戳列 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

任何人都可以帮助我编写确切的查询来获取所有列的时间和总和

提前致谢

4

3 回答 3

2

你有没有尝试过 ?

SELECT ADDTIME(time1, time2);
于 2012-06-21T09:08:07.873 回答
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
于 2012-06-21T09:48:18.730 回答
0

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

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

SELECT Mon + Tue
于 2012-06-21T09:04:50.303 回答