如何在Hive中将ISO日期转换为UTC日期

时间:2013-06-06 07:25:27

标签: type-conversion hive unix-timestamp isodate

我有以下JSON数据:我需要将该日期或mongo_date转换为utc时间戳,按照时间轴示例每年,每月,每周使用map reduce

{
    "_id" : ObjectId("51ac77050e9edcdad271ce2d"),
    "company" : null,
    "date" : "19760224",
    "mongo_date" : ISODate("1976-02-24T00:00:00Z")

1 个答案:

答案 0 :(得分:4)

Hive理解这种格式:' yyyy-MM-dd HH:mm:ss.SSS'。对于UTC时间戳,您可以转换 只需更换“T'空格('')并删除' Z':

from_unixtime(unix_timestamp(
  concat(substr('2014-01-29T18:15:12.429Z',1,10),' ',
         substr('2014-01-29T18:15:12.429Z',12,12)
        ),'yyyy-MM-dd HH:mm:ss.SSS')
             ) 

找到了更优雅的解决方案。

 select from_unixtime(UNIX_TIMESTAMP("2017-01-01T05:01:10Z", "yyyy-MM-dd'T'HH:mm:ss'Z'"),"yyyy-MM-dd HH:mm:ss"); 

OK 
2017-01-01 05:01:10

请参阅:jira