hive 时间函数问题

把当前时间转换成 unix 时间戳

select unix_timestamp();        

取正确的当前时间,用current_timestamp  函数

select current_timestamp();      

select date_format(current_timestamp,'yyyy-MM-dd HH:mm:ss');


如果用 from_unixtime 时间函数取当前系统时间会发现比系统时间早了 8个小时

select   from_unixtime(1649905154, "yyyy-MM-dd HH:mm:ss");

select  from_unixtime(unix_timestamp(), "yyyy-MM-dd HH:mm:ss");

加8个小时,能正确取到当前时间

select from_unixtime(cast('1649905154' as bigint) + 28800,'yyyyMMdd HH:mm:ss');


hive 时区问题

新版本 hive 3.1.2 ,时区是LOCAL 本地时区 上海时区

select current_timestamp();  取的是当前正确的时间

而老版本hive 3.1.0  时区是UTC , 取得时间会比当前时间早 8 个小时

因此新版本hive 可以设置时区 set hive.local.time.zone=UTC ;   老版本hive 时间保持一致。

你可能感兴趣的:(hive 时间函数问题)