오라클 특정시간 사이 BETWEEN 계산 관련? 0 3 1,959

by 메시 [2022.06.10 17:06:39]


현재 시간 기준으로 특정 시작, 종료 시간 사이에 걸리면 대상 여부를 찾으려고 하는데요.

아래 특정 시간/종료 시간으로 기준으로 해서 BETWEEN 해도 날짜 사이가 맞게 처리 되는걸까요?

테스트 시 시간대 걸려서 체크는 되는것 같기는한데요... 

 

특정 시작시간 : STA_DATE

특정 종료시간 : END_DATE

 

 SELECT CASE WHEN TO_CHAR(SYSDATE, 'HH24:MI') BETWEEN TO_CHAR(STA_DATE,'HH24:MI') AND TO_CHAR(END_DATE,'HH24:MI') THEN 'Y'
           ELSE 'N' END  AS TARGET

   FROM DUAL

by 마농 [2022.06.13 08:46:25]

1. 데이터 타입이 date 인가요?
- 시간만 체크하는 게 맞는지?
- 일자까지 체크해야 하는 건 아닌지?
2. FROM 절엔 왜? dual 이 오죠?
- sta_date 가 테이블의 컬럼이 아닌가요?


by 메시 [2022.06.13 15:06:09]

 

1. 데이터 타입이 date 인가요?  네. date 타입입니다.
- 시간만 체크하는 게 맞는지?  네. 시간만 체크합니다.
- 일자까지 체크해야 하는 건 아닌지? 당일 시간만 체크해서 일자는 체크 안해도 될것 같습니다.
2. FROM 절엔 왜? dual 이 오죠?
- sta_date 가 테이블의 컬럼이 아닌가요?  네. 테이블 컬럼이 아닌 예시로 시작/종료 시간 표시했습니다.


by 마농 [2022.06.13 16:01:32]

답변이 이해가 안가네요.
- 시간만 체크하는데 왜? date 를 사용하는지?
- 테이블 컬럼이 아닌 예시라는게 도대체 뭔지?
위 질문 쿼리는 실행 가능한 코드가 아닌 것으로 보입니다.
입력 변수라고 한다면 문자형식을 이용하시면 될 것 같습니다.

SELECT CASE WHEN TO_CHAR(sysdate, 'hh24:mi') BETWEEN :sta_time AND :end_time
            THEN 'Y' ELSE 'N' END AS target
  FROM dual
;

 

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