简体   繁体   中英

How to convert .net DateTime.Ticks to Hive DateTime in query?

I have log file with a column in DateTime.Ticks (635677577653488758) which i am trying to convert it to Date in Hadoop Hive.

First i tried the code block below on MySql and it worked. But the same code didn't work in Hive because date_add function works with INT.

SELECT DATE_ADD('2001-01-01 00:00:00', INTERVAL (MAX(f.date) - 631139040000000000)/10 MICROSECOND);

Then i will format it like this...

SELECT DATE_FORMAT(MyDateFromTicks, '%Y-%m-%dT%T.%fZ');

How can i achieve this?

Thank you.

I've found the solution. I am writing it down here so if anyone comes this far can check the answer :)

My Ticks: 635683895215023579

EPOCH Ticks: 621355968000000000

SELECT FROM_UNIXTIME(CAST((635683895215023579 - 621355968000000000)/10000000 as BIGINT),'yyyy-MM-dd\'T\'HH:mm:ss.SSSZ');

在Java中编写UDF。使用SimpleDateFormat类将数据转换为日期

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM