我的 Hive 表中有以下时间戳字符串表示形式:
20130502081559999
我需要将其转换为字符串,如下所示:
2013-05-02 08:15:59
我尝试过以下操作({code} >>> {result}):
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmss')) >>> 2013-05-03 00:54:59
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmssMS')) >>> 2013-09-02 08:15:59
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmssMS')) >>> 2013-05-02 08:10:39
转换为时间戳然后unixtime看起来很奇怪,正确的方法是什么?
EDIT我想到了。
from_unixtime(unix_timestamp(substr('20130502081559999',1,14), 'yyyyMMddHHmmss')) >>> 2013-05-02 08:15:59
or
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmssSSS')) >>> 2013-05-02 08:15:59
还是……还有更好的办法吗?
看起来你的格式有三个毫秒数字。我猜想,根据简单日期格式,您需要使用以下内容:
from_unixtime(unix_timestamp('20130502081559999', 'yyyyMMddHHmmssSSS'))
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)