Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

EXTRACT (datetime)

문법

MAIN

extract_datetime::=
Description of extract_datetime.gif follows

그림 설명
 

목적

MAIN

EXTRACT함수는 특정 날짜,시간 값이나 날짜 값 표현식으로부터 지정된 날짜 영역의 값을 추출하여 반환한다. TIMEZONE_REGION 또는 TIMEZONE_ABBR(생략형)을 추출하는 경우, 반환값은 적절한 time zone명 또는 생략형을 포함한 문자열이다. 다른 임의의 값을 추출할 경우, 반환되는 값은 Gregorian calendar(태양력)이다. time zone값을 가지는 datetime으로부터 추출하는 경우, 반환되는 값은 UTC이다. time zone명과 그에 상응하는 생략형을 표시하기 위해서, V$TIMEZONE_NAMES 동적 실행 뷰(dynamic performance view)를 실행하라.

Note:

TIMEZONE 지역명은 서머타임 기능에 의해 필요해 진다. 지역명은 2개의 time zone에서 저장된다. 기본적인 time zone 파일은 최대 퍼포먼스를 위한 일반적 time zones을 가지는 작은 파일이다. 만약 time zone이 기본 파일에 존재하지 않으면, ORA_TZFILE 환경 변수의 방법에 의해 완전한 파일 경로를 제공할때 까지 서머타임은 지원되지 않는다.

datetime 필드, datetime 또는 구간 값 표현의 조합은 애매한 결과가 될수있다. 이런 경우, 오라클 데이터 베이스는 UNKNOWN을 반환한다.(자세한 사항은 예제 참조)

추출하는 필드는 datetime_value_expr 또는 interval_value_expr의 필드일 필요가 있다. 예를 들어서, DATE값으로부터 YEAR,MONTH,DAY만을 추출할수 있다. TIMESTAMP WITH TIME ZONE 데이터형으로부터 TIMEZONE_HOUR과 TIMEZONE_MINUTE를 추출할수 있다.


 

예제

MAIN

다음 예제는 1998년을 반환한다.

SELECT EXTRACT(YEAR FROM DATE '1998-03-07') FROM DUAL;

EXTRACT(YEARFROMDATE'1998-03-07')
---------------------------------
                             1998

다음 예제는 hr.employees테이블에서 1998년 이후에 고용된 모든 종업원을 선택한다.

SELECT last_name, employee_id, hire_date
   FROM employees
   WHERE EXTRACT(YEAR FROM
   TO_DATE(hire_date, 'DD-MON-RR')) > 1998
   ORDER BY hire_date;

LAST_NAME                 EMPLOYEE_ID HIRE_DATE
------------------------- ----------- ---------
Landry                            127 14-JAN-99
Lorentz                           107 07-FEB-99
Cabrio                            187 07-FEB-99
. . .

다음 예제는 생략형 결과로, 오라클은 UNKNOWN을 반환한다.

SELECT EXTRACT(TIMEZONE_REGION 
      FROM TIMESTAMP '1999-01-01 10:00:00 -08:00')
   FROM DUAL;

EXTRACT(TIMEZONE_REGIONFROMTIMESTAMP'1999-01-0110:00:00-08:00')
----------------------------------------------------------------
UNKNOWN