gpt4 book ai didi

hadoop - 如何在毫秒内将字符串日期转换为 hive 中的大整数

转载 作者:可可西里 更新时间:2023-11-01 15:10:11 25 4
gpt4 key购买 nike

我有一个字符串 2013-01-01 12:00:01.546 代表一个带有毫秒的 timestamp 我需要将其转换为 bigint 不丢失毫秒数。

我试过 unix_timestamp 但我失去了毫秒数:

unix_timestamp(2013-01-01 12:00:01.546,'yyyy-MM-dd HH:mm:ss') ==> 1357059601
unix_timestamp(2013-01-01 12:00:01.786,'yyyy-MM-dd HH:mm:ss') ==> 1357059601

我也试过毫秒格式,但没有区别

unix_timestamp(2013-01-01 12:00:01.786,'yyyy-MM-dd HH:mm:ss:SSS') ==> 1357059601

有什么方法可以在配置单元中获得毫秒差异?

最佳答案

到目前为止,这是我带来的。
如果您所有的时间戳都只有 3 位数的一小部分,则可以简化它。

with t as (select timestamp '2013-01-01 12:00:01.546' as ts)
select cast ((to_unix_timestamp(ts) + coalesce(cast(regexp_extract(ts,'\\.\\d*',0) as decimal(3,3)),0)) * 1000 as bigint)
from t

1357070401546

结果验证:

select from_utc_timestamp (1357070401546,'UTC')

2013-01-01 12:00:01.546000

关于hadoop - 如何在毫秒内将字符串日期转换为 hive 中的大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44653257/

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