配置单元中2个纳秒时间戳数据之间的差异

whhtz7ly  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(332)

我有两列时间戳数据长达纳秒,这是来自一个事务日志文件。我想找出纳秒以内的时间差。我曾尝试通过将列数据转换为时间戳来直接减去列数据,但这样做时会出现多个错误。有没有办法在Hive里做呢。 Request_Time Response_Time 2018-11-08 12:24:24.123456345 2018-11-09 12:24:24.123556567 2018-11-08 23:59:59.234123678 2018-11-09 00:00:00.342567456 2018-11-08 12:24:24.678345345 2018-11-09 01:02:03.688456678 2018-11-08 12:24:24.789456234 2018-11-08 12:24:24.799455567 我想找出其中的区别(响应时间-请求时间)。感谢您的帮助。

4xy9mtcn

4xy9mtcn1#

我不认为有什么直接的方法,
您可以做的是将时间戳转换为unix时间戳,然后得到差分,但是这只会让您得到几秒钟的差分,而不是纳秒的差分。
然而,以下将。

SELECT (unix_timestamp("2018-11-09 12:24:25.123556567")+cast(split("2018-11-09 12:24:25.123556568","\\.")[1]*0.0000000010 as decimal (12, 12)))
-
(unix_timestamp("2018-11-09 12:24:25.123556567")+cast(split("2018-11-09 12:24:25.123556567","\\.")[1]*0.0000000010 as decimal (12, 12)) )
from temp.test_time

差异将按以下格式显示
unix\u timestamp.nano\u秒
对于表,

SELECT *,(unix_timestamp(time1)+cast(split(time1,"\\.")[1]*0.0000000010 as decimal (12, 12))) - 
(unix_timestamp(time)+cast(split(time,"\\.")[1]*0.0000000010 as decimal (12, 12)))
from temp.test_time

相关问题