今天工作中遇到的问题,需要在hive中计算两个时间相差的小时数。

网上搜集了一下解决函数,发现不完全对。

秉持实践出真理,动手测试了一下,发现和网上的差了一个单位级,以下给出正确方法:

若给出两个时间:time1,time2

--计算出时间相差的秒钟
(unix_timestamp(time1)-unix_timestamp(time2))

--同理,若是计算相差的分钟,就在以上基础再除以60,小时,天数也是同理
(unix_timestamp(time1)-unix_timestamp(time2))/60

hive 时间向前推13小时 hive 时间相差分钟_数据仓库

根据上述的函数计算后(如上图)发现有小数点,可优化为以下

cast((unix_timestamp(time1)-unix_timestamp(time2))/60 as int)

hive 时间向前推13小时 hive 时间相差分钟_hadoop_02