如何将 hive 日期区间转换为秒数?

nkoocmlb  于 2021-04-03  发布在  Hive
关注(0)|答案(1)|浏览(545)

我很惊讶,没有找到任何有用的谷歌上,我以为是一个简单的问题。
我如何转换一个hive间隔到秒?
例如,说我有一个时间间隔。
选择时间戳('2020-01-03 12:34:36') -时间戳('2020-01-01 12:34:34') diff
返回 "2 00:00:02.000000000"。
两天零两秒。
我只是想把它转换为结果中包含的秒数。有什么最简单的方法可以把这个间隔转换为秒数?
我试着把这个区间添加到unix epoch date '1970-01-1'中,然后用unix_time来获取秒数,但是由于某些原因,它返回的结果是错误的。
我想我可以分别提取日、时、分、秒,然后把它们加起来。
一定有一个更干净的方法,对吗?

vohkndzv

vohkndzv1#

使用unix_timestamp如何,如下所示-

select unix_timestamp('2020-01-03 12:34:36') - unix_timestamp('2020-01-01 12:34:34') diff

我使用的是3.1.0.3.版本。
编辑:根据下面的评论,这里是您可以使用的

select unix_timestamp('02 00:00:02.000000000',"dd HH:mm:ss.SSSSSSSSS") + 86400;

所以,假设时间戳的差异被存储在名为diff的列中,并且是以指定的格式和数据类型是字符串,那么一般的赋值将如下所示

select unix_timestamp(diff,"dd HH:mm:ss.SSSSSSSSS") + 86400;

相关问题