본문 바로가기
DataBase/Oracle with Error

[해결 방법] ORA-00932: inconsistent datatypes: expected DATE got NUMBER

by HJ0216 2023. 9. 17.

👉 기본 환경

- Language: Oracle

 

 

⌨️ 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
  SELECT B.TITLE, 
         B.BOARD_ID, 
         R.REPLY_ID, 
         R.WRITER_ID, 
         R.CONTENTS, 
         TO_CHAR(R.CREATED_DATE, 'YYYY-MM-DD') CREATED_DATE
    FROM USED_GOODS_BOARD B 
    JOIN USED_GOODS_REPLY R 
      ON B.BOARD_ID = R.BOARD_ID
   WHERE B.CREATED_DATE = 2022-10
ORDER BY R.CREATED_DATE, B.TITLE
;
 
 

 

 

🖨️오류

ORA-00932: inconsistent datatypes: expected DATE got NUMBER

 

 

📡 원인

DATE 데이터 유형을 숫자와 비교하려고 시도

Oracle에서는 DATE 형식의 날짜와 숫자 간의 직접적인 비교를 허용하지 않음

 

 

📰 해결 방법

1
2
3
4
5
6
7
8
9
10
11
12
13
  SELECT B.TITLE, 
         B.BOARD_ID, 
         R.REPLY_ID, 
         R.WRITER_ID, 
         R.CONTENTS, 
         TO_CHAR(R.CREATED_DATE, 'YYYY-MM-DD') CREATED_DATE
    FROM USED_GOODS_BOARD B 
    JOIN USED_GOODS_REPLY R 
      ON B.BOARD_ID = R.BOARD_ID
   WHERE TO_CHAR(B.CREATED_DATE, 'YYYY-MM'= '2022-10'
ORDER BY R.CREATED_DATE, B.TITLE
;
 
 

TO_CHAR()를 통한 문자열간 비교로 변경