|
原帖由 sdxiong 于 2008-5-26 11:09 发表 ![]()
CREATE OR REPLACE FUNCTION MY_ADD_MONTHS(P_DATE_STRING VARCHAR2,
P_MONTHS NUMBER)
RETURN VARCHAR2 IS
H INT := 100;
S INT := P_DATE_STRING;
Y INT := S/H/H;
M INT := S/H MOD H;
D INT := S MOD H;
PROCEDURE P IS
BEGIN
S := 28 + 3232332323030 / 10**M MOD 10;
IF M=2 AND (Y MOD 400 = 0 OR Y MOD 4 < Y MOD H / H) THEN
S := 29;
END IF;
END;
BEGIN
P;
D := D + D * INSTR(D,S);
M := Y*12+M+P_MONTHS;
Y := M/12-.55;
M := M-Y*12;
P;
D := LEAST(D,S);
RETURN Y*H*H + M*H + D;
END;
/
MS语法有错?
sqlplus下不能用
pl/sql中没问题
[ 本帖最后由 谁 于 2008-5-26 11:14 编辑 ] |
|