如何将时间转换成unix时间戳

kulphzqa  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(403)

在Hive里我有一些数据。现在我想把 start_timestamp 进入 unix_timestamp 在第二。怎么做?因为 start_timestamp 有两种格式:
第一种格式:

2018-03-22 02:54:35

第二种格式:

May 15 2018  5:15PM
mjqavswn

mjqavswn1#

第一种格式是 'yyyy-MM-dd HH:mm:ss' 其次是 'MMM dd yyyy hh:mm:aa' . 如果格式错误, unix_timestamp 函数将返回 NULL . 如果需要,请尝试使用一种格式进行转换 NULL ,尝试使用其他格式转换。这可以使用 coalesce 功能:

select 
      coalesce(unix_timestamp(start_timestamp ,'yyyy-MM-dd HH:mm:ss'),
               unix_timestamp(start_timestamp ,'MMM dd yyyy hh:mm:aa')
              ) as UnixTimestamp
  from my_table;

使用 from_unixtime() 如有必要,将其转换回给定的格式,如本答案所示。
请参见此处的模式示例:SimpleDataFormat

相关问题