오라클에서 과거 최근 월요일 구하기

먼저 오늘을 포함한 과거 7일간의 날짜를 구하고 TO_CHAR(DAY,’D’) 값이 2인 날짜를 구한다. 여기서 TO_CHAR(DAY,’D’)값이 1이면 일요일, 2이면 월요일… 이다.

SELECT TO_CHAR(DAY,'D') AS WEEK
     , TO_CHAR(DAY,'YYYY-MM-DD') AS DAY
  FROM (
        SELECT SYSDATE-6 AS DAY FROM DUAL UNION ALL
        SELECT SYSDATE-5 AS DAY FROM DUAL UNION ALL
        SELECT SYSDATE-4 AS DAY FROM DUAL UNION ALL
        SELECT SYSDATE-3 AS DAY FROM DUAL UNION ALL
        SELECT SYSDATE-2 AS DAY FROM DUAL UNION ALL
        SELECT SYSDATE-1 AS DAY FROM DUAL UNION ALL
        SELECT SYSDATE AS DAY   FROM DUAL
       )
WHERE 1=1
   AND TO_CHAR(DAY,'D') = '2'
오라클 최근 월요일