Разница между данными о 2 временных метках с наносекундами в улье
У меня есть 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 ответ
Я не думаю, что есть прямой способ сделать это,
Что вы можете сделать, это преобразовать метку времени в метку времени 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