【问题标题】:Hive: convert date to intHive:将日期转换为 int
【发布时间】:2018-10-19 21:41:02
【问题描述】:

输入看起来像:

2017-07-03

预期输出如下:

20170703

我尝试了以下代码:

year(2017-07-03) * 10000 + month(2017-07-03) * 100 + day(2017-07-03))

有没有可以做这种转换的内置函数?

谢谢

【问题讨论】:

  • 你能解释一下你为什么这样做吗?我希望你把它转换成一个长的“Unix epoch”

标签: date hive int data-conversion


【解决方案1】:

您可以将from_unixtimeunix_timestampcast 一起使用。

select cast(from_unixtime(unix_timestamp('2017-07-03','yyyy-MM-dd'),'yyyyMMdd') as int)

【讨论】:

    【解决方案2】:

    您可以在“-”上拆分,然后再次连接回来。或者将“-”替换为“”。

    regexp_replace("2017-07-03", "-", "")

    how to replace characters in hive?

    【讨论】:

    • cast(regexp_replace("2017-07-03", "-", "") as int)
    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 2021-12-18
    • 2020-10-03
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多