CREATE OR REPLACE function HNMES.GetWeekNum( I_VALUE IN date,I_SP VARCHAR2 default null) return VARCHAR2
as
V_BEGNUM NUMBER;
V_YD NUMBER ;
V_BEGDT DATE;
V_BEGDTNUM NUMBER;
V_WN NUMBER;
begin
IF I_VALUE IS NULL
THEN
RETURN NULL;
END IF;
V_BEGNUM := to_char(I_VALUE,'d','NLS_DATE_LANGUAGE=AMERICAN')-1;
V_YD :=to_char(I_VALUE,'ddd');
V_BEGDT :=I_VALUE-V_YD+1;
V_BEGDTNUM :=to_char(V_BEGDT,'d','NLS_DATE_LANGUAGE=AMERICAN')-1;
V_WN :=ceil( V_YD/7);
if V_BEGNUM<V_BEGDTNUM
then
V_WN :=V_WN+1;
end if;
return to_char(I_VALUE,'YYYY')||I_SP||to_char(V_WN,'FM00');
end;
/
oracle 取周数,按周日到下周六为一周,以年为周期算,一年开始为第一周
最新推荐文章于 2021-08-28 10:17:58 发布