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')



Posted by '김용환'

댓글을 달아 주세요