복붙노트

[HADOOP] 하이브에서 날짜 형식을 변경하는 방법?

HADOOP

하이브에서 날짜 형식을 변경하는 방법?

하이브에있는 내 테이블에는 '2016/06/01'형식의 날짜가 있습니다. 그러나 나는 그것이 '2016-06-01'형식과 조화가되지 않는다는 것을 알게되었습니다. 그들은 예를 들어 비교할 수 없습니다. 둘 다 문자열입니다.  그래서 저는 그들을 조화롭게 만들고 그들을 비교할 수있는 방법을 알고 싶습니다. 또는 '2016/06/01'을 '2016-06-01'로 변경하여 비교할 수있는 방법.

많은 감사합니다.

해결법

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

    1.한 형식에서 다른 형식으로 날짜 문자열을 변환하려면 하이브의 두 날짜 기능을 사용해야합니다.

    한 형식에서 다른 형식으로 날짜 문자열을 변환하려면 하이브의 두 날짜 기능을 사용해야합니다.

    위의 두 가지 기능을 사용하여 원하는 결과를 얻을 수 있습니다.

    샘플 입력 및 출력은 아래 이미지에서 볼 수 있습니다.

    마지막 질문은

    select from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyy-MM-dd') from table1; 
    

    여기서 table1은 하이브 데이터베이스에있는 테이블 이름입니다.

    나는 이것이 당신을 도와주기를 바란다 !!!

  2. ==============================

    2.사용 :

    사용 :

    unix_timestamp(DATE_COLUMN, string pattern)
    

    위의 명령은 날짜를 Unix 타임 스탬프 형식으로 변환하는 데 도움이되며 간단한 날짜 기능을 사용하여 원하는대로 형식을 지정할 수 있습니다.

    날짜 기능

  3. ==============================

    3.이 시도: 캐스트 (to_date (from_unixtime (unix_timestamp (yourdate, 'MM-dd-yyyy')))를 날짜로 사용)

    이 시도: 캐스트 (to_date (from_unixtime (unix_timestamp (yourdate, 'MM-dd-yyyy')))를 날짜로 사용)

  4. ==============================

    4.형식에 맞는 'birth_day'열이 테이블에 있다고 가정 해 보겠습니다. birth_day를 필수 형식으로 변환하려면 다음 쿼리를 사용해야합니다.

    형식에 맞는 'birth_day'열이 테이블에 있다고 가정 해 보겠습니다. birth_day를 필수 형식으로 변환하려면 다음 쿼리를 사용해야합니다.

    date_Format(birth_day, 'yyyy-MM-dd')
    

    다음과 같은 방식으로 쿼리에 사용할 수 있습니다.

    select * from yourtable
    where 
    date_Format(birth_day, 'yyyy-MM-dd') = '2019-04-16';
    
  5. from https://stackoverflow.com/questions/37558697/how-to-change-date-format-in-hive by cc-by-sa and MIT license