날짜 관련 조회조건 개선방법 0 1 566

by 와아아앙 [SQL Query] [2022.02.15 19:44:32]


파라미터 값으로 시작일 종료일 문자열 데이터(yyyyMMdd)가 있고

테이블 컬럼이 연도 컬럼, 월 컬럼(VARCHAR2)이 인덱스로 잡혀있을 경우

시작일과 종료일 사이의 데이터를 조회하고 싶은데

WHERE 연도 || 월 BETTWEN SUBSTR(시작일, 1, 6) AND SUBSTR(종료일, 1, 6) 이런식으로 하면

인덱스가 안잡히는데 

어떤 식으로 조회해야 인덱스를 탈 수 있을까요??

by 마농 [2022.02.15 23:23:12]
SELECT *
  FROM t
 WHERE 연도 || 월 BETTWEN SUBSTR(시작일, 1, 6) AND SUBSTR(종료일, 1, 6)
   AND 연도 BETTWEN SUBSTR(시작일, 1, 4) AND SUBSTR(종료일, 1, 4)
;

연,월,일 을 나누면 범위검색이 어렵습니다. 하나의 항목으로 관리하는게 좋습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입