DB
[oracle] ORA-01843: not a valid month 해결 하기
'김용환'
2018. 12. 3. 13:45
sql console로는 update_date 컬럼에 between..and 를 검색했더니 잘 동작했다.
select hostname, domain from server where update_date BETWEEN '2018-11-28' AND '2018-11-28 23:59:59'
코드에 반영했지만 아래와 같은 에러가 발생했다.
ORA-01843: not a valid month
아래 쿼리로 확인해도 정상적으로 AMERICAN으로 잘 나왔다.
select * from nls_session_parameters where parameter = NLS_DATE_LANGUAGE;
원인은 컬럼에 timestamp 타입인지 명시하지 않아서 발생한 것이다.
따라서 아래와 같이 TO_TIMESTAMP를 사용하는 방식을 사용하면 정상적으로 작동한다.
select hostname, domain from server where update_date BETWEEN TO_TIMESTAMP('2018-11-28 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP('2018-11-28 23:59:59', 'YYYY-MM-DD HH24:MI:SS')