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