[HADOOP] 하이브에서 날짜 형식을 변경하는 방법?
HADOOP하이브에서 날짜 형식을 변경하는 방법?
하이브에있는 내 테이블에는 '2016/06/01'형식의 날짜가 있습니다. 그러나 나는 그것이 '2016-06-01'형식과 조화가되지 않는다는 것을 알게되었습니다. 그들은 예를 들어 비교할 수 없습니다. 둘 다 문자열입니다. 그래서 저는 그들을 조화롭게 만들고 그들을 비교할 수있는 방법을 알고 싶습니다. 또는 '2016/06/01'을 '2016-06-01'로 변경하여 비교할 수있는 방법.
많은 감사합니다.
해결법
-
==============================
1.한 형식에서 다른 형식으로 날짜 문자열을 변환하려면 하이브의 두 날짜 기능을 사용해야합니다.
한 형식에서 다른 형식으로 날짜 문자열을 변환하려면 하이브의 두 날짜 기능을 사용해야합니다.
위의 두 가지 기능을 사용하여 원하는 결과를 얻을 수 있습니다.
샘플 입력 및 출력은 아래 이미지에서 볼 수 있습니다.
마지막 질문은
select from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyy-MM-dd') from table1;
여기서 table1은 하이브 데이터베이스에있는 테이블 이름입니다.
나는 이것이 당신을 도와주기를 바란다 !!!
-
==============================
2.사용 :
사용 :
unix_timestamp(DATE_COLUMN, string pattern)
위의 명령은 날짜를 Unix 타임 스탬프 형식으로 변환하는 데 도움이되며 간단한 날짜 기능을 사용하여 원하는대로 형식을 지정할 수 있습니다.
날짜 기능
-
==============================
3.이 시도: 캐스트 (to_date (from_unixtime (unix_timestamp (yourdate, 'MM-dd-yyyy')))를 날짜로 사용)
이 시도: 캐스트 (to_date (from_unixtime (unix_timestamp (yourdate, 'MM-dd-yyyy')))를 날짜로 사용)
-
==============================
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';
from https://stackoverflow.com/questions/37558697/how-to-change-date-format-in-hive by cc-by-sa and MIT license