Hive查询语言时间戳

时间:2016-01-11 07:42:50

标签: mysql sql hive unix-timestamp hiveql

我需要从当前时间获得7天的时间间隔,以毫秒为单位。我使用now()尝试了date_sub但是对我没用。我们如何在蜂巢中这样做。我需要与我的查询中当前的间隔current_timestamp(unix)和7天的间隔。还有什么条款可以选择UTC + 5:30这样的时区吗?

1 个答案:

答案 0 :(得分: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