본문 바로가기
Oracle

[Oracle] between 사용 시 주의할 에러

by byeongoo 2020. 3. 4.

회사에서 웹어플리케이션 개발을 하다가 발견하기 힘든 에러를 만나서 여기에 공유합니다. 

 

문제 상황 : local에서 데이터 적용 마감을 현재 시간으로 업데이트하고, 현재 시간으로 적용중인 데이터 조회시 적용중인 데이터가 안나오는걸 확인하고 dev 환경에 업로드했는데, dev에서는 현재 적용중인 데이터가 있는 것으로 나옴

 

문제 원인 : between 사용 시 SYSDATE BETWEEN TIME1 AND TIME2 일 경우 TIME1과 TIME2 시간은 포함됩니다. dev 환경에서는 이 처리속도가 빨라서 적용 마감 데이터를 업데이트한 시간과 현재 적용중인 데이터를 가지고 올 때 TIME1이 일치하게 되었습니다. 그래서 데이터가 계속 존재하는 것으로 나왔습니다. 

 

평소에 BETWEEN을 많이 사용하는 편인데, 이런 오류를 조심해야할꺼 같습니다. 속도적인 측면에서도 between 보다는 부등호를 사용하는 방식이 빠르다고하니 시간 조회시 부등호를 사용하는것도 좋은 방법인거 같습니다.

'Oracle' 카테고리의 다른 글

[Oracle] SELECT 문장의 논리적 실행 순서  (0) 2022.10.10
[Oracle] Trim  (0) 2019.11.06
[Oracle] 쿼리 실행 순서  (0) 2019.10.31
[Oracle] 정규표현식 함수 REGEXP  (0) 2019.10.31
[Oracle] PL/SQL %TYPE  (0) 2019.10.28