разница между данными о 2 временных метках и наносекундами в улье - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть 2 столбца с метками времени до наносекунд, которые поступают из файла журнала транзакций. Я хочу найти разницу во времени до наносекунд. Я попытался напрямую вычесть данные столбцов, преобразовав их в метку времени, но получая при этом несколько ошибок. Есть ли способ сделать это в Улей.

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

Я хочу найти разницу (Response_Time - Request_Time). Любая помощь приветствуется.

1 Ответ

0 голосов
/ 08 ноября 2018

Я не думаю, что есть прямой способ сделать это,

Что вы можете сделать, это преобразовать метку времени в метку времени 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_timestamp.nano_seconds

Для стола,

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
...