이번에 새롭게 구축한 하둡 에코시스템 내 Hive를 활용해서 이런저런 쿼리 및 데이터 분석을 해보려고 한다.
그러면서 조금씩 학습한 내용을 기록해준다(맨날 까먹고 구글링하는게 힘들어서ㅠ)
바로 전에 진행했던 String형식의 Datetime 사이의 초수를 구하는 쿼리문 작성에서 주로 사용했던 함수들을
좀 더 연습해보기로 했다.
unix_timestamp 함수
함수명만 봐도 대충 멀 하는 목적인지 알 수 있는 그런 함수ㅎㅎㅎ
String형태의 Datetime 데이터를 timstamp값으로 변환해주는 함수다.
뒤에 붙여주는 format은 Datetime 데이터의 형태를 명시해주면 된다.
- unix_timestamp(string date[, string format]) > 주어진 값을 unixtime 으로 변환
format에 입력하면 어떻게 값이 달라지는지 보려고 이것저것 실습해봤다.
결론은 월을 명시하는 'MM' 을 'mm' 으로 표시하면 결과가 달라진다였다.
앞으론 그냥 왠만하면 특별한 일이 없는 한 'yyyyMMddHHmmss' 형태로 고정해서 써야겠다ㅎㅎ
SELECT unix_timestamp('20220717160202', 'yyyyMMddHHmmss'),
unix_timestamp('20220717160202', 'yyyyMMddhhmmss'),
unix_timestamp('20220717160202', 'yyyymmddHHmmss'),
unix_timestamp('20220717160202', 'yyyymmddhhmmss');
결과 > 1658041322, 1658041322, 1642402922, 1642402922
from_unixtime 함수
unix_timestamp와 같이 함수명만 봐도 뭘 하는 함수인지 알 것 같다.
timestamp 데이터를 Datetime 값으로 변환해주는 함수다.
뒤의 format은 표시하고 싶은 형태로 지정해주는 용도다.
- from_unixtime(bigint unixtime[, string format]) unixtime을 일자로 변환
format에 따른 결과를 살펴보려고 실습해본다. 그리고 마지막에 'a' 를 붙여주면 오전/오후를 함께 출력할 수 있다.
unix_timestamp 실습 때와 비슷하게 월을 표시하는 방식을 다르게 하니 결과가 원하지 않는 결과였다.
앞으론 월을 표시할 때는 무조건 'MM'으로 고정해야겠다.
시를 표시하는 방식은 'HH' 는 24시간 표시방식으로, 'hh' 는 12시간 표시방식으로 표시된다.
고로 'hh' 로 표시한다면 마지막에 'a'를 붙여줘서 오전/오후 구분을 해줘야 할 것 같다ㅎㅎ
SELECT from_unixtime(unix_timestamp('20220717160202', 'yyyyMMddHHmmss'),"yyyy-MM-dd HH:mm:ss a"),
from_unixtime(unix_timestamp('20220717160202', 'yyyyMMddhhmmss'),"yyyy-MM-dd hh:mm:ss a"),
from_unixtime(unix_timestamp('20220717160202', 'yyyyMMddHHmmss'),"yyyy-mm-dd HH:mm:ss a"),
from_unixtime(unix_timestamp('20220717160202', 'yyyyMMddhhmmss'),"yyyy-mm-dd hh:mm:ss a");
결과 > 2022-07-17 16:02:02 오후
2022-07-17 04:02:02 오후
2022-02-17 16:02:02 오후
2022-02-17 04:02:02 오후
select from_unixtime(unix_timestamp('20220717040202', 'yyyyMMddHHmmss'),"yyyy-MM-dd HH:mm:ss a"),
from_unixtime(unix_timestamp('20220717040202', 'yyyyMMddhhmmss'),"yyyy-MM-dd hh:mm:ss a"),
from_unixtime(unix_timestamp('20220717040202', 'yyyyMMddHHmmss'),"yyyy-mm-dd HH:mm:ss a"),
from_unixtime(unix_timestamp('20220717040202', 'yyyyMMddhhmmss'),"yyyy-mm-dd hh:mm:ss a");
결과 > 2022-07-17 04:02:02 오전
2022-07-17 04:02:02 오전
2022-02-17 04:02:02 오전
2022-02-17 04:02:02 오전
[참조사이트] 빅데이터 - 하둡, 하이브로 시작하기 https://wikidocs.net/25258
'IT, Software > DataBase' 카테고리의 다른 글
HeidiSQL 사용 MariaDB 접속하고 쿼리해보기 (2) | 2022.10.03 |
---|---|
Hive SQL - 두개의 테이블을 Select한 결과끼리 Join하기 (0) | 2022.08.06 |
Hive SQL - String을 Datetime로 변환, 두개의 Datetime사이 초수 구하기 (0) | 2022.07.28 |
댓글