--Chỉ cần đặt năm vào: CAL_YEAR và bạn sẽ nhận được kết quả ngày cho năm
select daterange, dayname from
(
select (to_date(01||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(01||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(01||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(01||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(02||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(02||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(02||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(02||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(03||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(03||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(03||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(03||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(04||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(04||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(04||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(04||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(05||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(05||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(05||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(05||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(06||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(06||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(06||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(06||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(07||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(07||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(07||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(07||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(08||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(08||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(08||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(08||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(09||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(09||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(09||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(09||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(10||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(10||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(10||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(10||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(11||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(11||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(11||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(11||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31
union
select (to_date(12||' '||:CAL_YEAR,'MM YYYY')-1 + level) DateRange,
TO_CHAR(to_date(12||' '||:CAL_YEAR,'MM YYYY')-1 + level,'DAY') DAYNAME
from dual
where (to_date(12||' '||:CAL_YEAR,'MM YYYY')-1+level) <= last_day(to_date(12||' '||:CAL_YEAR,'MM YYYY'))
connect by level<=31)
;
Tôi nghĩ bạn đúng. Tôi đã thực sự bỏ lỡ những điều này nhiều lần. – ErrorNotFoundException