簡體   English   中英

如何在Hive中將ISO日期轉換為UTC日期

[英]How to convert ISO Date to UTC date in Hive

我有以下JSON數據:我需要將該日期或mongo_date轉換為utc時間戳,按照時間線示例分析hive中的數據每年,每月,每周使用map reduce

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

Hive理解這種格式: 'yyyy-MM-dd HH:mm:ss.SSS'

使用unix_timestamp()轉換為1970-01-01傳遞的秒數,然后使用from_unixtime()轉換為正確的格式:

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

結果:

2017-01-01 05:01:10

更新。 此方法是使用regexp_replace刪除Z並用空格替換T並在必要時轉換為時間戳,而不使用unix_timestamp() ,這將保留毫秒:

select timestamp(regexp_replace("2019-05-17T17:03:09.775Z", '^(.+?)T(.+?)Z$','$1 $2'));

結果:

2019-05-17 17:03:09.775

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM