首页 > 解决方案 > HIVE:如何计算时间格式的秒差:yyyyMMdd HH:mm:ss

问题描述

如何计算时间格式的秒差:yyyyMMdd HH:mm:ss?例如,计算20190102 00:01:05和的秒差20190102 02:14:18

标签: timehivetimestamphiveqldatetime-format

解决方案


使用UNIX_TIMESTAMP函数将时间戳转换为秒,然后减去:

select UNIX_TIMESTAMP('20190102 02:14:18','yyyyMMdd HH:mm:ss') -
       UNIX_TIMESTAMP('20190102 00:01:05','yyyyMMdd HH:mm:ss');

回报:

7993秒。

'HH:mm:ss'格式差异:

select from_unixtime(UNIX_TIMESTAMP('20190102 02:14:18','yyyyMMdd HH:mm:ss') -
       UNIX_TIMESTAMP('20190102 00:01:05','yyyyMMdd HH:mm:ss'), 'HH:mm:ss');

回报:

02:13:13

您还可以使用解决方案如何'HH:mm:ss'使用此答案中提出的显式数学来格式化秒数:https ://stackoverflow.com/a/57497316/2700344


推荐阅读