【问题标题】:Hive Query Language TimestampHive 查询语言时间戳
【发布时间】:2016-01-11 07:42:49
【问题描述】:

我需要从当前时间以毫秒为单位获取间隔 7 天的时间戳。我尝试使用 now() date_sub 但对我不起作用。我们如何在蜂巢中做到这一点。在我的查询中,我需要确切的间隔 current_timestamp(unix) 和 7 天的间隔。还有什么规定可以选择像UTC + 5:30这样的时区吗?

【问题讨论】:

    标签: mysql sql hive unix-timestamp hiveql


    【解决方案1】:

    我在 HIVE 中找不到有关基于毫秒的时间计算的信息。

    unix_timestamp() 是当前时间戳,但它没有毫秒数。

    偏移量为 7 天*24 小时/天*3600 秒/小时 = 604800 毫秒

    所以当前时间加上 7 天的时间戳将是 unix_timestamp() + 604800

    UTC 部分比较复杂;您可以使用 to_utc_timestamp,给它您计算的时间戳,以及它来自的时区(作为日期)。它将返回一个日期字符串,您将通过 unix_timestamp() 传递它

    换句话说,假设它来自 PST,你应该使用:

    select unix_timestamp(to_utc_timestamp(from_unixtime(unix_timestamp() + 604800), 'PST')) from dual;
    

    在此处查看文档:

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

    【讨论】:

      猜你喜欢
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      相关资源
      最近更新 更多