날짜 컬럼, 시간컬럼이 분리되어있을때 시간범위(날자 + 시간) 검색 질문입니다. 0 2 2,895

by 곰돌이 날짜 범위검색 [2014.05.02 17:18:23]


Table_A

START_DATE    START_TIME    END_DATE    END_TIME
2014-04-22      08:00:10         2014-04-22      08:00:10
2014-04-22      08:07:13         2014-04-22      08:07:13
2014-04-23      08:17:17         2014-04-23      08:17:17
2014-04-23      08:42:59         2014-04-23      08:42:59

 

이란 테이블이 있을때, 

2014년 4월 22일 07시 58분 24초 ~ 2014년 04월 23일 14시 00분 00초 까지 검색을

다음 쿼리와 같이 

SELECT *
  FROM Table_A
 WHERE START_DATE + ' ' + START_TIME >= '2014-04-22 ' + '07:58:24'
   AND END_DATE + ' ' + END_TIME <= '2014-04-23 ' + '14:00:00'

이런 식으로 칼럼을 결합하여 범위검색을 하였는데요..

결합형식이 아닌 AND나 OR로 날짜+시간 범위를 조회할 수 있을까요??

by 농부지기 [2014.05.02 22:19:34]

님께서 작성한게 최종 정답인듯 합니다.

AND, OR 조건으로 위 값을 설정할 수 는 없죠.


by 마농 [2014.05.07 08:09:16]
-- 위에 적으신 조건을 그대로 바꾸면 다음과 같습니다만...
 WHERE ((start_date = '2014-04-22' AND start_time >= '07:58:24') OR start_date > '2014-04-22')
   AND ((  end_date = '2014-04-23' AND   end_time <= '14:00:00') OR   end_date < '2014-04-23')
-- 실제로 범위검색은 위처럼 하시면 안됩니다. 시작과 종료를 교차비교하셔야 합니다.
 WHERE start_date + ' ' + start_time <= '2014-04-23' + ' ' + '14:00:00'
   AND   end_date + ' ' +   end_time >= '2014-04-22' + ' ' + '07:58:24'
-- 이걸 바꿔보면
 WHERE ((start_date = '2014-04-23' AND start_time <= '14:00:00') OR start_date < '2014-04-23')
   AND ((  end_date = '2014-04-22' AND   end_time >= '07:58:24') OR   end_date > '2014-04-22')

 

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