SELECT to_char(DAYS,'yyyymmdd') AS "sysdate" FROM (SELECT TRUNC(SYSDATE, 'yy') + ROWNUM - 1 DAYS FROM (SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= TRUNC(LAST_DAY(SYSDATE)) - TRUNC(SYSDATE, 'yy') + 1)) WHERE TO_CHAR(DAYS, 'd') = '7' AND DAYS < SYSDATE