Как изменить тип данных на отметку времени с помощью функций unix_timestamp и from_unixtime Hive

#hive #apache-spark-sql #hiveql

#улей #apache-spark-sql #hiveql

Вопрос:

 from_unixtime(unix_timestamp(CAST(arrival_time as TIMESTAMP),"yyyy-MM-dd HH:mm:ss")) as arr_time,
CAST(arrival_time as TIMESTAMP) as arrival_time
  

Вывод:

 arr time                         arrival_time
2020-06-15 05:20:24             2020-06-15T05:20:24.000 0000
2020-06-15 05:20:24             2020-06-15T05:20:24.000 0000
2020-06-15 05:20:24             2020-06-15T05:20:24.000 0000
2020-06-15 05:20:24             2020-06-15T05:20:24.000 0000
  

Преобразование непосредственно во временную метку дает мне 2020-06-15T05:20:24.000 0000
но я ищу, 2020-06-15 05:20:24 которые я получаю, используя функции unix_timestamp и from_unixtime Hive но проблема в том, что тип данных остается только в виде строки, я хочу тип данных в качестве метки времени.

Как мы можем создать 2020-06-15 05:20:24 в качестве метки времени?

Ответ №1:

Используйте to_timestamp .

 select to_timestamp(arrival_time) from table