时髦的时间戳格式

时间:2016-05-18 16:16:47

标签: hadoop hive

我们从供应商处获取数据,并将其加载到Hive中。我无法将日期时间字段转换为时间戳(它全部存储为字符串)。在我的头撞了一会儿后,我终于注意到日期的一天部分和时间的一小部分之间有一个连字符:

yyyy-mm-dd-hh.mm.ss.SSSSSS
2016-05-18-21.05.21.177152

我一直试图用from_unixtime来解决这个问题,但到目前为止还没有运气。我很确定这不是SimpleDateFormat的有效模式。

有没有办法解决这个问题,不涉及将它分成两个字符串,并将它们连接成一个有效的模式?

1 个答案:

答案 0 :(得分:0)

使用substr拆分日期并替换字符串第二部分中的“ - ”并连接两个字符串。

from_unixtime(concat(substr(sdate,0,10)),regexp_replace(substr(sdate,10,16),'-','')))