CREATE OR REPLACE FUNCTION get_days (p_date DATE)
RETURN NUMBER AUTHID CURRENT_USER
AS
p_days NUMBER := 0;
BEGIN
SELECT ( TO_DATE (TO_CHAR (ADD_MONTHS (p_date, 1), 'yyyymm'), 'yyyymm')
- TO_DATE (TO_CHAR (p_date, 'yyyymm'), 'yyyymm')
)
INTO p_days
FROM DUAL;
RETURN p_days;
EXCEPTION
WHEN OTHERS
THEN
RETURN 0;
END;
/
使用方法:get_days(sysdate)