select case when to_char(trunc(sysdate,'year')+rownum,'d')='7' then trunc(sysdate,'year')+rownum end from dba_objects where rownum<=366;
列出任意1年中或N年中星期六的日期方法依次类推
再来看pl/sql的方法
SET SERVEROUTPUT ON
DECLARE
v_max NUMBER DEFAULT 365;
BEGIN
IF MOD(EXTRACT(YEAR FROM SYSDATE)/400)=0 THEN
v_max :=366;
END IF;
FOR i IN 1..v_max LOOP
IF to_char(trunc(sysdate,'year')+i,'d')='7'THEN
DBMS_OUTPUT.PUT_LINE(trunc(sysdate,'year')+i,'d')||' is satuday');
ENF IF;
END LOOP;
END;