我在hive表中有一个datetime字段,其数据类型为字符串。
如下所示:
datetime 3/24/2017 10:00:00 PM
尝试将其转换为hive所需的正确格式,并尝试将AM / PM移至24小时格式但无效。
select from_unixtime(unix_timestamp(datetime,'mm-dd-yyyy HH:MM:SS')) from test_table
答案 0 :(得分:4)
您可以使用以下命令实现此目的:
select from_unixtime(unix_timestamp(datetime,'MM/dd/yyyy hh:mm:ss aa'),'MM-dd-yyyy HH:mm:ss') from test_table;
答案 1 :(得分:0)
格式为MM-dd-yyyy HH:mm:ss aa
select from_unixtime(unix_timestamp(datetime,'MM-dd-yyyy HH:mm:ss aa')) from test_table;
答案 2 :(得分:0)
使用'MM / dd / yyyy hh:mm:ss aa'无效。您可以使用以下方法对此进行归档:
FROM_UNIXTIME
(
(
CASE WHEN
datetime LIKE '%AM%'
THEN
UNIX_TIMESTAMP(datetime,'MM/dd/yyyy HH:mm:ss aa')
ELSE
(UNIX_TIMESTAMP(datetime,'MM/dd/yyyy HH:mm:ssaa') + (12 * 3600))
END
)
,'MM-dd-yyyy HH:mm:ss'
)