为什么要在hive中\utc\u timestamp返回错误的年份?

4nkexdtk  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(353)

尝试在配置单元cli中运行简单查询-

select to_utc_timestamp(unix_timestamp("04/24/2017 01:59:01","MM/dd/YYYY HH:mm:ss"),'EST');

结果:

OK
1970-01-18 09:00:35.941
Time taken: 0.448 seconds, Fetched: 1 row(s)

输出不应该是日期加4小时吗?

uqcuzwp8

uqcuzwp81#

我们开始吧。你得把衣服包起来 unix_timestamp 在一个 from_unixtime .

select to_utc_timestamp(from_unixtime(unix_timestamp('04/24/2017 01:59:01','MM/dd/yyyy hh:mm:ss'),'yyyy-MM-dd hh:mm:ss'),"EST");
ncgqoxb0

ncgqoxb02#

yyyy (而不是 YYYY ) unix_timestamp 返回bigint和 to_utc_timestamp 将整数值视为毫秒

select to_utc_timestamp(1000*unix_timestamp("04/24/2017 01:59:01","MM/dd/yyyy HH:mm:ss"),'EST');

相关问题