관리 메뉴

솜씨좋은장씨

[Oracle] TO_DATE 사용 중 ORA-01810 - format code appears twice 발생 시 해결 방법 본문

Programming/SQL | Database

[Oracle] TO_DATE 사용 중 ORA-01810 - format code appears twice 발생 시 해결 방법

솜씨좋은장씨 2022. 4. 10. 10:00
728x90
반응형

Python에서 문자열을 DATETIME 객체로 바꾸어주는 함수인 strptime이 있듯이 

2022.01.19 - [Programming/Python] - [Python] datetime의 strptime을 활용하여 시간과 시간 사이의 차이 구하는 방법

 

[Python] datetime의 strptime을 활용하여 시간과 시간 사이의 차이 구하는 방법

개발을 하다 보면 종종 특정 시간과 특정 시간 사이에 얼마나 많은 시간이 흘렀는지 구해야 할 경우가 있습니다. 직접 시간을 계산하는 코드를 작성해도 되지만 2시 39분 -> 5시 25분 까지 얼마나

somjang.tistory.com

ORACLE에서도 문자열 형식의 날짜를 DATETIME 형식으로 바꾸어주는 함수인 TO_DATE 가 존재합니다.

 

그런데! Python에서 사용하던 기억을 가지고 사용하다보면

ORA-01810 - format code appears twice

위와 같은 에러가 발생하는 경우가 있습니다.

 

저의 경우에는 분을 나타내는 부분을 "MM" 이라고 나타냈다가 발생한 에러였습니다.

Python에서는 '2022-01-02 12:23:45' 을 DATETIME으로 바꿀때 'yyyy-mm-dd HH:MM:SS' 으로 사용해서

똑같이 사용하면 발생합니다.

Oracle에서는 'yyyy-mm-dd HH24:MI:SS' 로 표시하여야 합니다.

구분 Python Oracle 비고 ( Oracle )
Y Y 2022 -> YYYY / 22 -> YY
m m 01 / 02 -> mm
d d 01 / 02 -> dd
시간 HH HH / HH24 24시간 단위 하고싶을때 HH24
MM MI  
SS SS  

위의 표를 참고하여 작성하면!

 

문제없이 동작할 겁니다.

 

읽어주셔서 감사합니다.

Comments