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')
'DB' 카테고리의 다른 글
[mysql] timestamp 타입 주의사항 (0) | 2019.03.06 |
---|---|
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 (0) | 2019.01.11 |
ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다 (0) | 2018.04.04 |
autoReconnect and socketTimeout JDBC option makes wrong order of client packet (0) | 2018.01.09 |
mysql 완전 삭제 (0) | 2017.09.27 |