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