如何在查询中将.net DateTime.Ticks转换为Hive DateTime?

时间:2015-05-28 09:18:19

标签: c# datetime hadoop hive amazon-emr

我在DateTime.Ticks(635677577653488758)中有一个列的日志文件,我试图将它转换为Hadoop Hive中的Date。

首先,我在MySql上尝试了下面的代码块,但它确实有效。但是相同的代码在Hive中不起作用,因为date_add函数适用于INT。

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

然后我会像这样格式化它......

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

我怎样才能实现这个目标?

谢谢。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。我在这里写下来,所以如果有人来到这里可以检查答案:)

我的蜱虫:635683895215023579

EPOCH Ticks:621355968000000000

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

答案 1 :(得分:0)

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