Dav*_*ord 10 hadoop timestamp hive
我有一个字符串'20141014123456789',它表示我需要转换为Hive(0.13.0)中的时间戳而不会丢失毫秒的时间戳(毫秒).
我试过这个,但unix_timestamp返回一个整数,所以我失去了毫秒:
from_unixtime(unix_timestamp('20141014123456789', 'yyyyMMddHHmmssSSS'))      >> 2014-10-14 12:34:56    
投射字符串有效:
cast('2014-10-14 12:34:56.789' as timestamp)      >> 2014-10-14 12:34:56.789
但我的字符串不是那种形式.
我想我需要将我的字符串从'20141014123456789'重新格式化为'2014-10-14 12:34:56.789'.我的挑战是如何在没有子串的混乱连接的情况下做到这一点.
我找到了一种方法来避免使用以下代码的子串的混乱连接:
select cast(regexp_replace('20141014123456789', 
                           '(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{3})',
                           '$1-$2-$3 $4:$5:$6.$7') as timestamp) 
| 归档时间: | 
 | 
| 查看次数: | 47470 次 | 
| 最近记录: |