Hive : extract (날짜에서 특정 요소 추출하기, 시간 추출, 년도 추출, 주차 추출, 요일 추출)
extract 함수는 어떤 날짜/시간 string에서 원하는 요소를 추출합니다.
Syntax
extract(field from datetime_string)
datetime_string에서 field에 명시된 요소를 추출합니다.
field로 사용할 수 있는 것은 다음과 같습니다.
- year -> 년
- month -> 월
- day -> 일
- quarter -> 분기
- week -> 주차
- dayofweek -> 요일
- hour -> 시
- minute -> 분
- second -> 초
select extract(year from '2023-11-10 12:34:56')
;
-- Result
2023
2023-11-10 12:34:56에서 year(년)를 추출합니다.
2023이 return됩니다.
select extract(month from '2023-11-10 12:34:56') --> 11
;
-- Result
11
2023-11-10 12:34:56에서 month(월)를 추출합니다.
11이 return됩니다.
select extract(day from '2023-11-10 12:34:56')
;
-- Result
10
2023-11-10 12:34:56에서 day(일)를 추출합니다.
10이 return됩니다.
select extract(quarter from '2023-11-10 12:34:56') --> 4
;
-- Result
4
2023-11-10 12:34:56에서 quarter(분기)를 추출합니다.
4가 return됩니다.
select extract(week from '2023-11-10 12:34:56')
;
-- Result
45
2023-11-10 12:34:56에서 week(주차)를 추출합니다.
45가 return됩니다.
select extract(dayofweek from '2023-11-10 12:34:56')
;
-- Result
6
2023-11-10 12:34:56에서 day of week(요일)를 추출합니다.
2023-11-10은 금요일이므로 6이 return됩니다.
요일별 weekday number는 다음과 같습니다.
일 = 1
월 = 2
화 = 3
수 = 4
목 = 5
금 = 6
토 = 7
select extract(hour from '2023-11-10 12:34:56')
;
-- Result
12
2023-11-10 12:34:56에서 hour(시간)를 추출합니다.
따라서 12가 return됩니다.
select extract(minute from '2023-11-10 12:34:56')
;
-- Result
34
2023-11-10 12:34:56에서 minute(분)을 추출합니다.
따라서 34가 return됩니다.
select extract(second from '2023-11-10 12:34:56')
;
-- Result
56
2023-11-10 12:34:56에서 second(초)를 추출합니다.
따라서 56가 return됩니다.