본문 바로가기
개발/DB

[오라클] 특정 날짜가 들어 있는 주의 월요일 날짜와 일요일 날짜 구하기

by 똘똘이박사 2025. 3. 26.

오늘 조금 특별한 상황이 발생 하였다.

어떤 날짜를 지정하면, 지정한 날짜가 포함된 주의 월요일 날짜와 일요일 날짜를 확인해야 하는 일이 생겼다.

다행히 오라클에서 쉬운 방식으로 해당 날짜를 구할 수 있어서 방법을 정리해 본다.

 

SELECT :YMD
     , TO_CHAR(TRUNC(TO_DATE(:YMD, 'YYYYMMDD'), 'IW'), 'YYYYMMDD') AS MONDAY_YMD
     , TO_CHAR(TRUNC(TO_DATE(:YMD, 'YYYYMMDD'), 'IW') +6, 'YYYYMMDD') AS MONDAY_YMD
  FROM DUAL;

:YMD는 입력 받은 특정 날짜이다.

이 날짜에가 들어 있는 주의 월요일과 일요일 날짜를 구하려고 하는 것이다.

IW는 ISO Week의 약자로 월요일의 날짜를 반환해 주는 역활을 한다.

월요일의 날짜는 쉽게 구했다. 일요일의 날짜는 해당 날짜에 6을 더하여 구할 수 있다.

위 코드를 응용하여 특정 날짜가 속해 있는 주의 데이터를 읽어 오도록 할 수도 있다.

 

SELECT *
  FROM Table1
 WHERE :YMD BETWEEN TO_CHAR(TRUNC(TO_DATE(:YMD, 'YYYYMMDD'), 'IW'), 'YYYYMMDD') 
                AND TO_CHAR(TRUNC(TO_DATE(:YMD, 'YYYYMMDD'), 'IW') +6, 'YYYYMMDD');

 

이런 식으로 응용하여 원하는 기간의 데이터를 조회해 올 수 있다.

반응형

'개발 > DB' 카테고리의 다른 글

[오라클] 입력 받은 날짜  (0) 2025.04.01
[DB]오라클 개발 - 운영 서버 비교하기  (0) 2025.03.12
[DB] 한 컬럼에 여러개의 결과 표현하기  (0) 2021.07.28
[DB] WITH AS 문 사용하기  (1) 2021.07.28
DB2 에러 정리  (0) 2021.04.16