【问题标题】:Convert unixtime to TIMESTAMP in HiveSQL在 Hive SQL 中将 unix 时间转换为 TIMESTAMP
【发布时间】:2015-06-18 19:13:09
【问题描述】:

如何在 HiveSQL 中将 unix 纪元时间转换为 TIMESTAMP?

内置日期函数from_unixtime 将其转换为字符串而不是TIMESTAMP。 to_utc_timestamp 似乎只将时间戳从时区转换为 UTC。

是否有任何函数可以将 unix 时间戳直接从 BIGINT 转换为 TIMESTAMP?

示例

SELECT to_timestamp(1427976376) FROM mytable; --> 2015-04-02 14:06:16

编辑:

虽然不是很好,但我能找到的最佳选择是

SELECT cast(from_unixtime(1427976376) as TIMESTAMP) FROM mytable;

【问题讨论】:

    标签: sql hive


    【解决方案1】:

    尝试以下操作:

    SELECT from_unixtime(unix_timestamp) as new_timestamp from mytable...
    

    它将unix时间戳转换为YYYY-MM-DD HH:MM:SS格式,然后您可以使用以下函数获取年月日:

    SELECT year(new_timestamp) as year, month(new_timestamp) as month, day(new_timestamp) as day ...
    

    【讨论】:

    • 但这根本没有给我 TIMESTAMP 类型的结果。我需要它作为 TIMESTAMP 不分为年份和月份等。
    • 那么CONCAT()函数呢? thelandbeyondspreadsheets.com/…
    • 不,这会给我一个 STRING 并且将是一种非常乏味的方式来获得与 from_unixtime 一样的内容。
    猜你喜欢
    • 2011-02-20
    • 2018-12-02
    • 2021-07-02
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多