by 꿈꾸는DB뉴비 [SQL Query] #Oracle #Oracle19c #TimeStamp #기간조회 [2021.12.22 12:32:34]
안녕하세요.
오라클 DB를 처음써보는 뉴비입니다. 타임스탬프로하는 기간검색이 잘 안돼서 질문드립니다..
구글 검색해도 안나오는 것 같은데, 제가 잘 못하는건지 한 번만 도움 부탁드립니다.
테이블 : COMMLOG
칼럼 : COMMDATE(DATE), COMMTIMESTAMP(TIMESTAMP),OriginData(varchar2)
일단 타임스탬프로 기간검색이 안돼서, 일단 임시로 DATE 칼럼을 추가 생성해서 이중으로 시간을 저장하고 있습니다.
*정상작동
현재 사용 쿼리 : SELECT * FROM COMMLOG WHERE COMMDATE BETWEEN to_date ('2021-12-22 11:00:00','YYYY-MM-DD HH24:MI:SS') AND to_date ('2021-12-22 12:00:00','YYYY-MM-DD HH24:MI:SS') ORDER BY COMMDATE ASC
* 테스트 해본 쿼리
* ORA-01821 : 날짜형식 에러
SELECT * FROM COMMLOG WHERE COMMTIMESTAMP BETWEEN to_timestamp('2021-12-22 11:00:00.111','YYYY-MM-DD HH24:MI:SSfff') AND to_timestamp('2021-12-22 12:00:00.111','YYYY-MM-DD HH24:MI:SSfff') ORDER BY COMMDATE ASC;
SELECT * FROM COMMLOG WHERE
COMMTIMESTAMP >= to_timestamp('2021-12-22 11:00:00.111','YYYY-MM-DD HH24:MI:SS.fff')
AND COMMTIMESTAMP <= to_timestamp('2021-12-22 12:00:00.111','YYYY-MM-DD HH24:MI:SS.fff') ORDER BY COMMDATE ASC;
대략 이런식으로 테스트 해봤습니다. 좋은 방법 있으시면 답변 부탁드립니다.