달나라 노트

Hive : unix_timestamp & from_unixtime (yyyymmdd 형태의 텍스트를 date type으로 바꾸기. 날짜와 unix_timestamp간의 변환) 본문

SQL/Apache Hive

Hive : unix_timestamp & from_unixtime (yyyymmdd 형태의 텍스트를 date type으로 바꾸기. 날짜와 unix_timestamp간의 변환)

CosmosProject 2020. 12. 17. 00:31
728x90
반응형

 

 

unix_timestamp()의 사용법은 아래와 같습니다.

 

unix_timestamp(날짜를 나타내는 텍스트, 날짜의 형식)

 

예시를 한번 봐봅시다.

 

select unix_timestamp('2020-11-10', 'yyyy-MM-dd');

결과 : 1604934000

위 식을 보면 날짜를 나타내는 텍스트는 2020-11-10입니다.

그리고 이 텍스트가 yyyy-MM-dd라는 형식을 가지고 있다고 알려주면,

2020-11-10이라는 날짜를 unix timestamp로 변환해서 반환해주죠.

 

 

select unix_timestamp('20201110', 'yyyyMMdd');

결과 : 1604934000

만약 위처럼 주어지는 날짜 텍스트의 형식이 yyyy-MM-dd에서 yyyyMMdd로 바뀐다면, 날짜 형식도 그에 따라 변경해주면 됩니다.

 

 

 

from_unixtime(unix timestamp)

반대로 from_unixtime은 unix timestap를 우리가 알고있는 년, 월, 일, 시, 분, 초의 날짜형식으로 바꿔줍니다.

 

select from_unixtime(1604934000);

결과 : 2020-11-10 00:00:00

아까 위 예시에서 얻은 1604934000을 인자로 넣었더니 날짜 형식으로 변환되었습니다.

 

 

 

 

 

select  current_date,
        from_unixtime(unix_timestamp()),
        date_format(from_unixtime(unix_timestamp()), 'yyyyMMdd')
;



-- Result
2021-08-24
2021-08-24 19:23:10
20210824

unix_timestamp 함수는 인자로 전달된 날짜를 unixtimestamp(e.g. 1604934000)로 변환해주는 함수지만

위처럼 아무 인자 없이 사용하면 현재 시간을 unixtimestamp로 반환해줍니다.

 

이것을 from_unixtime 함수를 이용하여 현재 날짜 시간데이터로 바꿔줄 수 있으며,

이를 활용하면 현재 날짜나 현재 시간을 얻는것이 가능합니다.

 

 

 

 

 

 

 

728x90
반응형
Comments