天天看点

hive:函数:日期比较函数:datediff() + months_between() 求时间差(天数时间差+小时时间差+分钟时间差+秒时间差)

天数时间差:

select datediff('2018-07-09','2018-06-05'); --34
           

月数时间差:

select months_between('1997-02-28', '1996-1-30'); --12.93548387
           

年数时间差:

其他方式:

先转换为时间戳格式再求时间差:

将两个字段转换为为毫秒类型时间戳,相减,再转换为2019-06-23 00:00:00 这种形式并取两位小数点

如果时间差单位为天的话则除以3600*24 如果时间差单位是小时的话则除以3600

示例:

时间格式为2019-06-23 00:00:00

计算天数时间差:

select round(((unix_timestamp('2019-06-23 00:00:00') - unix_timestamp('2019-06-22 00:00:00') ) / (3600*24)),2) hktime
           

计算小时时间差:

select round(((unix_timestamp('2019-06-23 00:00:00') - unix_timestamp('2019-06-22 00:00:00') ) / (3600)),2) hktime
           

计算分钟时间差:

select round(((unix_timestamp('2019-06-23 00:00:00') - unix_timestamp('2019-06-22 00:00:00') ) / 60),2) hktime
           

计算秒时间差:

select round(((unix_timestamp('2019-06-23 00:00:00') - unix_timestamp('2019-06-22 00:00:00') )),2) hktime
           

继续阅读