Oracle/Oracle 실무

[ DB | ORACLE ] N시 ~ N시 사이의 데이터 구하기

냠냠쿠 2023. 12. 28. 11:23
728x90

 

일단 날짜데이터는 '20231228161823' 형식으로 들어온다.

가장 최신 날짜/시간 데이터를 가져와서 해당 시간이 N시 ~ N시 사이에 해당하는지 여부를 판단해야했다.

 

SELECT CASE WHEN TO_NUMBER(SUBSTR(max(날짜컬럼), 9, 4)) BETWEEN 2350 AND 2400 
            OR TO_NUMBER(SUBSTR(max(날짜컬럼), 9, 4)) BETWEEN 0 AND 10 THEN 'Y'
       ELSE 'N'
       END AS iswithintimeframe
from 테이블명
where 날짜컬럼 LIKE '20231228%';

 

나같은경우는 오후 11시 50분 ~ 12시 10분 사이에 데이터가 있으면 Y 없으면 N을 표시하도록 쿼리를 짰다.

 

만약 리스트를 추출하고싶다면 

 

SELECT 필요한컬럼추가1, 필요한컬럼추가2, CASE WHEN TO_NUMBER(SUBSTR(날짜컬럼, 9, 4)) BETWEEN 2350 AND 2400 
            OR TO_NUMBER(SUBSTR(날짜컬럼, 9, 4)) BETWEEN 0 AND 10 THEN 'Y'
       ELSE 'N'
       END AS iswithintimeframe
from 테이블명
where 날짜컬럼 LIKE '20231228%';

 

이렇게 날짜컬럼을 MAX에서 빼주고 필요한 컬럼을 추가해주면된다.

728x90