在hive sql中,将纪元时间(ms - 13位)转换为时间戳

r7xajy2e  于 2021-04-02  发布在  Hive
关注(0)|答案(1)|浏览(750)

我需要从hive查询中的epoch timestamp中获取完成时间戳。

  1. For example
  2. epoch time --- 1606407266850
  3. timestamp value --- 2020-11-26 21:44:26
  4. expected value --- 2020-11-26 21:44:26.850

我在hive的方法。

  1. Select timestamp(concat(from_unixtime(CAST(lastModifiedOn AS BIGINT),'yyyy-MM-dd HH:mm:ss'),".",CAST(lastModifiedOn AS BIGINT)%1000),'yyyy-MM-dd HH:mm:ss.SSS')
  2. from db.table1

我的问题:我们是否有更好的方法来获取时间戳值,直到毫秒? 我们可以很容易地获取值,直到秒。

3lxsmp7m

3lxsmp7m1#

  1. select cast(lastModifiedOn/1000 as timestamp);

不能指定精度,但会将时间戳保持在最高精度。

相关问题