2017-11-24 4 views
1

하이브 버전은 2.1.0두 하이브 SQL 아래에 다른 결과가 왜?

HQL 1 :

hive> select day, datediff(day, '2017-01-01') from mall_stat_daily where day='2017-11-13'; 

result: 
2017-11-13  315 

hql2 :

hive> select day, datediff('2017-11-13', '2017-01-01') from mall_stat_daily where day='2017-11-13'; 

result: 
2017-11-13  316 

왜이 가진 다른 결과? 또한 mysql에서 이러한 sqls를 테스트하고 '316'과 같은 결과를 얻습니다.

답변

3

문자열의 날짜를 구문 분석 할 때 날짜 포맷터가 UTC 시간대를 사용하기 때문에 2.0.0의 버그였습니다. 이 두 매개 변수는 문자열 형식의 있지만 올바르게 매개 변수 중 하나를 문자열 형식의 다른 날짜/타임 스탬프 형식을 날짜/시간 스탬프 값을 때문에 밀리 초 결과가 있기 때문에 잘못된 결과를 제공합니다. 현지 시간대. 이것은 2.3 릴리스에서 수정되었습니다. https://issues.apache.org/jira/browse/HIVE-15338

희망이 도움이됩니다.

+0

감사합니다. 이 문제에 대한 해결 방법을 시도 할 것입니다. –