我无法在Hive中将以下字符串转换为datetime。
Mon Dec 12 10:55:11 UTC 2016
我用过date_format('Mon Dec 12 10:55:11 UTC 2016','dd-MM-yyyy')
。但是我得到NULL
的结果。
任何帮助将不胜感激。
答案 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