Mart
22nd 2010
Posted under boyraz
Oracle da to_char(tarih,’ww’) Yılın kaçıncı haftası olduğunu döner. Haftanın ise hangi tarihe karşılık geldiği yoktu oracle’da artık var
create or replace function to_dateww(p_date varchar2) return date is
v_date date;
–to_date format yyyy-iw, yyyy-ww
begin
SELECT TRUNC(DECODE(ww, 53, TO_DATE(yy || ‘3112′, ‘yyyyddmm’), TO_DATE(yy || ‘-’ || TO_CHAR(ww * 7), ‘yyyy-ddd’)), ‘d’) into v_date
FROM (SELECT SUBSTR(p_date, 1, 4) yy, TO_NUMBER(SUBSTR(p_date, 6)) ww
FROM DUAL);
return v_date+1;
exception when others then
return sysdate;
end;