gpt4 book ai didi

hadoop - 如何在 Hive 中将字符串转换为以毫秒为单位的时间戳

转载 作者:可可西里 更新时间:2023-11-01 14:12:44 27 4
gpt4 key购买 nike

我有一个字符串“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)

关于hadoop - 如何在 Hive 中将字符串转换为以毫秒为单位的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355194/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com