通过配置单元的时间列总和

fhity93d  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(310)

我在一个专栏里有下面的数据。这些是时间值。我要把Hive里的三行加起来。简单地添加是行不通的。

Col1
1:22:23
0:20:55
1:12:00
yeotifhr

yeotifhr1#

参见代码中的注解:

with your_data as (--use your table instead of this
select stack (3,
'1:22:23',
'0:20:55',
'1:12:00'
) as col1
)

select --calculate hours, minutes, seconds and concatenate to get time in HH:mm:ss format 
concat_ws(':',lpad(floor(sum_seconds/3600),2,'0'),        --HH
              lpad(floor(sum_seconds%3600/60),2,'0'),     --mm
              lpad(floor(sum_seconds%3600%60),2,'0')      --ss
       ) as sum_time
from       
(--sum seconds
select sum(col1[0]*3600+col1[1]*60+col1[2]) sum_seconds
from
(--split time parts
select split(col1,':') col1 from your_data
)s
)s;

删除 lpad 如果你不需要在一位数前加0

相关问题