在Hive中将'Mon Dec 12 10:55:11 UTC 2016'转换为日期时间

时间:2019-09-30 08:58:38

标签: datetime hadoop hive timestamp hiveql

我无法在Hive中将以下字符串转换为datetime。

Mon Dec 12 10:55:11 UTC 2016

我用过date_format('Mon Dec 12 10:55:11 UTC 2016','dd-MM-yyyy')。但是我得到NULL的结果。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用unix_timestamp(string date, string pattern)given format中的字符串转换为从Unix Epoch(1970年1月1日00:00:00 UTC)传递的秒数。

然后使用from_unixtime()转换为required format

演示:

您的初始格式为'EEE MMM dd HH:mm:ss z yyyy'

转换为yyyy-MM-dd HH:mm:ss(默认):

select from_unixtime(unix_timestamp('Mon Dec 12 10:55:11 UTC 2016','EEE MMM dd HH:mm:ss z yyyy'));

返回:

2016-12-12 10:55:11 

转换为yyyy-MM-dd

select from_unixtime(unix_timestamp('Mon Dec 12 10:55:11 UTC 2016','EEE MMM dd HH:mm:ss z yyyy'),'yyyy-MM-dd');

返回:

2016-12-12