[英]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.