在hadoop / hive

时间:2017-02-09 19:59:43

标签: hadoop hive hiveql hadoop2

我想将纪元时间转换为pst时区。 例如:1482440069当我转换为PST时,我应该得到2016-12-22

现在,当我尝试这个时,我得到了正确的答案

SELECT  from_utc_timestamp('1970-01-01 07:00:00', 'PST');

另外,当我尝试这个时,我得到了适当的值

select from_unixtime(cast(1482440069 as bigint), 'yyyy-MM-dd')
o/p : 2016-12-22

但是,当我尝试这个查询时,我得到NULL响应

select from_utc_timestamp(from_unixtime(cast(1482440069 as bigint), 'yyyy-MM-dd'),'PST') -- Gives NULL response

2 个答案:

答案 0 :(得分:0)

您可以尝试:

SELECT from_utc_timestamp(cast(from_unixtime('1970-01-01 07:00:00', 'yyyy-MM-dd HH:mm:ss') as bigint) + (time_zone value like -5 or -6 * 3600));

答案 1 :(得分:0)

使用yyyy-MM-dd HH:mm:ss代替yyyy-MM-dd

hive> select from_utc_timestamp(from_unixtime(cast(1482440069 as bigint), 'yyyy-MM-dd HH:mm:ss'),'PST');
OK
2016-12-22 04:54:29