将 unixtimestamp 转换为 datetime 未能在 impala/hive 中产生正确的结果

converting unixtimestamp to datetime failed to yield correct result in impala/hive

如果此问题已在其他时间和其他地方得到回答,我们深表歉意。 我的查询:

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

这个 returns 正确的结果:

2017-07-26 15:31:59

我的数据是这样的: 1501081198789

如您所见,该值与测试查询中的值完全不同,如果我将其放入查询中: 它 returns NULL

问题似乎是最后四位数字引起的,我该如何解决这个问题?

非常感谢。

由于您的纪元时间以毫秒为单位,如果您按如下方式修改查询,您将获得所需的输出:

select from_unixtime(cast('1501081198789'/1000 as bigint),"yyyy-MM-dd HH:mm:ss")

2017-07-26 10:59:58