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