날짜와 날짜 사이 계산방법 0 7 2,049

by YJsin [2013.04.01 15:13:48]


ex) 2013-04-01 ~ 31 등등의 데이터가 저장된 A 테이블이 있습니다.

바인드 변수를 사용하여 2013-04-03 과 2013-04-05 를 입력하면

3 ~ 5 사이의 값을 출력하고 싶은대

어떤 함수를 사용해야할까요?

by 채용근 [2013.04.01 15:24:57]

by 마농 [2013.04.01 15:39:21]
SELECT dt
  FROM a
 WHERE dt BETWEEN :from_dt AND :to_dt
 ORDER BY dt
;

by YJsin [2013.04.01 16:30:30]
감사합니다.

죄송하지만 질문을 하나 더 해도 될까요?


테이블안의 내용은 13/04/01이지만

비교해야할 값은 2013-04-01 입니다.

이럴땐 어떻게 해서 비교해야할까요?

위와 똑같은 내용을 기준으로 해주시면 감사합니다.
ㅜㅜ

by 마농 [2013.04.01 16:45:11]
-- 컬럼의 타입에 따라 조회방법이 다릅니다.
-- 1. Date Type --
SELECT dt
  FROM a
 WHERE dt >= TO_DATE(:from_dt, 'yyyy-mm-dd')
   AND dt <  TO_DATE(:to_dt  , 'yyyy-mm-dd') + 1
 ORDER BY dt
;
-- 1. Varchar2 Type --
SELECT dt
  FROM a
 WHERE dt >= TO_CHAR(TO_DATE(:from_dt, 'yyyy-mm-dd'), 'yy/mm/dd')
   AND dt <= TO_CHAR(TO_DATE(:to_dt  , 'yyyy-mm-dd'), 'yy/mm/dd')
 ORDER BY dt
;

by YJsin [2013.04.01 17:35:46]

같은 방법으로 시간 ~ 시간을 구하려면

to_date(:b1, 'HH24') 를 사용하면 되나요?


by 마농 [2013.04.01 17:48:10]

시간만 단독으로 사용하긴 곤란할 듯 한데요.
날짜와 시간을 함께 묶어서 사용해야 되지 않을까요? 'yyyy-mm-dd hh24'


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