处理较低的时区

发布于 2025-01-23 02:06:26 字数 631 浏览 0 评论 0 原文

我想在没有毫秒的情况下在Hive中使用Hive的时间戳柱。 如果时间戳是Epoch Unix时间(1970年),则时间戳将损坏: start_date = 1915-07-15 23:25:26.290448384

select ID, START_DATE, MD5(START_DATE) from TABLE1

结果:start_date = 2500-02-02-02 00:00:00:00:00.0

没有添加MD5功能,或者Timestamp> 1970年。

我已经尝试了使用矢量化参数(),但仍然存在同一问题。 还尝试了:在MD5之前用作字符串,substr ...。

我们如何处理时间戳< 1970年?

I want to md5 a timestamp column in Hive, without the millisecond.
If timestamp is before Epoch Unix Time (year 1970), timestamp is corrupted:
START_DATE=1915-07-15 23:25:26.290448384

select ID, START_DATE, MD5(START_DATE) from TABLE1

Result : START_DATE = 2500-02-02 00:00:00.0

No issue without adding MD5 function, or if the timestamp > 1970.

I've tried with vectorized parameter (https://cwiki.apache.org/confluence/display/hive/vectorized+query+execution#VectorizedQueryExecution-Limitations) but still the same issue.
Also tried : Cast as string, substr... before MD5.

How can we handle timestamp < 1970 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

活泼老夫 2025-01-30 02:06:26

您可以使用这样的人吗?

select md5(from_unixtime(unix_timestamp(substring('1915-07-15 23:25:26.290448384',1,19)))) as md5_out

UNIXTime将计算1970年之前的任何日期为负数,并相应地计算。所以我认为应该没事的。

can you use somethign like this ?

select md5(from_unixtime(unix_timestamp(substring('1915-07-15 23:25:26.290448384',1,19)))) as md5_out

output

Unixtime will calculate any date before 1970 as negative number and calculate accordingly. so i think it should be alright.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文