기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EXTRACT 함수
EXTRACT 함수는 TIMESTAMP, TIMESTAMPTZ, TIME 또는 TIMETZ 값에서 날짜 또는 시간 부분을 반환합니다. 예에는 타임스탬프의 일, 월, 년, 시, 분, 초, 밀리초 또는 마이크로초가 포함됩니다.
명령문
EXTRACT(datepart FROM source)
인수
- datepart
-
일, 월, 년, 시, 분, 초, 밀리초 또는 마이크로초 등 추출할 날짜 또는 시간의 하위 필드입니다. 에 대해 가능한 값은 날짜 또는 타임스탬프 함수의 날짜 부분 섹션을 참조하세요.
- source
-
TIMESTAMP, TIMESTAMPTZ, TIME 또는 TIMETZ의 데이터 유형으로 평가되는 열 또는 표현식입니다.
반환 타입
source 값이 TIMESTAMP, TIME 또는 TIMETZ의 데이터 유형으로 평가되는 경우 INTEGER입니다.
source 값이 TIMESTAMPTZ의 데이터 유형으로 평가되는 경우 DOUBLE PRECISION입니다.
TIMESTAMP를 사용한 예제
다음은 판매에서 지불 가격이 $10,000 이상이었던 주차 번호(week numbers)를 확인하는 예입니다.
select salesid, extract(week from saletime) as weeknum from sales where pricepaid > 9999 order by 2; salesid | weeknum --------+--------- 159073 | 6 160318 | 8 161723 | 26
다음 예에서는 리터럴 타임스탬프 값에서 분 값을 반환합니다.
select extract(minute from timestamp '2009-09-09 12:08:43'); date_part --
다음 예제에서는 리터럴 timestamp 값에서 밀리초 값을 반환합니다.
select extract(ms from timestamp '2009-09-09 12:08:43.101'); date_part ----------- 101
TIMESTAMPTZ를 사용한 예제
다음 예제에서는 리터럴 timestamptz 값에서 년 값을 반환합니다.
select extract(year from timestamptz '1.12.1997 07:37:16.00 PST'); date_part ----------- 1997
TIME을 사용한 예제
다음 예제 테이블 TIME_TEST에는 3개의 값이 삽입된 TIME_VAL(TIME 형식) 열이 있습니다.
select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00
다음 예에서는 각 time_val에서 분을 추출합니다.
select extract(minute from time_val) as minutes from time_test; minutes ----------- 0 0 58
다음 예에서는 각 time_val에서 시간을 추출합니다.
select extract(hour from time_val) as hours from time_test; hours ----------- 20 0 0
다음 예에서는 리터럴 값에서 밀리초를 추출합니다.
select extract(ms from time '18:25:33.123456'); date_part ----------- 123
TIMETZ를 사용한 예제
다음 예제 테이블 TIMETZ_TEST에는 3개의 값이 삽입된 TIMETZ_VAL(TIMETZ 형식) 열이 있습니다.
select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00
다음 예에서는 각 timetz_val에서 시간을 추출합니다.
select extract(hour from timetz_val) as hours from time_test; hours ----------- 4 0 5
다음 예에서는 리터럴 값에서 밀리초를 추출합니다. 추출이 처리되기 전에 리터럴은 UTC로 변환되지 않습니다.
select extract(ms from timetz '18:25:33.123456 EST'); date_part ----------- 123
다음 예제에서는 리터럴 timetz 값에서 UTC로부터의 시간대 오프셋 시간을 반환합니다.
select extract(timezone_hour from timetz '1.12.1997 07:37:16.00 PDT'); date_part ----------- -7