我在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');
我怎样才能实现这个目标?
谢谢。
答案 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类将数据转换为日期