복붙노트

[HADOOP] 어떻게 쿼리에서 하이브 날짜 시간에 그물의 DateTime.Ticks를 변환하는?

HADOOP

어떻게 쿼리에서 하이브 날짜 시간에 그물의 DateTime.Ticks를 변환하는?

난 내가 하둡 하이브에서 날짜로 변환하려고 DateTime.Ticks의 열 (635677577653488758)과 로그 파일이 있습니다.

먼저 내가 MySQL을 코드 블록 아래 시도하고 일했다. 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');

내가 어떻게 이것을 달성 할 수 있습니까?

감사합니다.

해결법

  1. ==============================

    1.나는 해결책을 발견했습니다. 사람이 멀리 답을 확인하실 수 있습니다 온다 그래서 만약 내가 여기를 쓰고 있어요 :)

    나는 해결책을 발견했습니다. 사람이 멀리 답을 확인하실 수 있습니다 온다 그래서 만약 내가 여기를 쓰고 있어요 :)

    내 진드기 : 635683895215023579

    EPOCH 진드기 : 621355968000000000

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

    2.자바에서 UDF를 쓰기 ... 사용하여 SimpleDateFormat 클래스는 날짜로 데이터를 변환

    자바에서 UDF를 쓰기 ... 사용하여 SimpleDateFormat 클래스는 날짜로 데이터를 변환

  3. from https://stackoverflow.com/questions/30502264/how-to-convert-net-datetime-ticks-to-hive-datetime-in-query by cc-by-sa and MIT license