728x90

 

사용 프로그램 & 버젼 등 환경

Oracle 11g
프로그래머스

 

메세지

ORA-30076: invalid extract field for extract source

 

상황

프로그래머스 입양 시각 구하기(1) 풀이 중 EXTRACT로 HOUR를 추출할려고 써보는데 해당 에러 발생

SELECT EXTRACT(HOUR FROM DATETIME)
FROM ANIMAL_OUTS

 

원인

데이터타입이 안맞아서 나는 오류

EXTRACT 함수를 사용할때, 2가지 데이터타입을 받을 수 있는데 하나는 DATE 다른 하나는 TIMESTAMP
1)DATE(DATETIME) : YEAR, MONTH, DAY
2)TIMESTAMP : HOUR, MINUTE, SECOND 등등

※DATETIME 데이터타입
DATE + TIMESTAMP = DATETIME
DATETIME 자체가 DATE 타입과 TIMESTAMP을 합쳐 놓은 데이터타입

SELECT SYSDATE,
       SYSTIMESTAMP,
       EXTRACT (YEAR FROM SYSDATE),
       EXTRACT (MONTH FROM SYSDATE),
       EXTRACT (DAY FROM SYSDATE),
       EXTRACT (HOUR FROM SYSTIMESTAMP),
       EXTRACT (MINUTE FROM SYSTIMESTAMP),
       EXTRACT (SECOND FROM SYSTIMESTAMP)
  FROM DUAL

 

해결

CAST()로 TIMESTAMP형으로 파싱해주면 된다

SELECT EXTRACT(HOUR FROM CAST(DATETIME AS TIMESTAMP)) HOUR
FROM ANIMAL_OUTS
728x90
반응형

+ Recent posts