create or replace procedure p_1(intime varchar)
创新互联一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以网站设计制作、成都网站建设、移动互联产品、营销型网站建设服务为核心业务。10年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。
is
outweek varchar2(32767);
begin
select ceil(to_char(to_date(intime,'YYYY-MM-DD'),'DDD')/7) into outweek from dual;
dbms_output.put_line('输入的日期是第' || outweek || '周');
end;
/
调用:
set serveroutput on;
exec p_1(’2012-01-07‘);
exec p_1(’2012-01-08‘);
sql语句提示用户交互输入方式:
select case
when (mod(year, 4) = 0 and mod(year, 100) != 0) or (mod(year, 400) = 0) then
'yes'
else
'no'
end RESULT
from dual;
存储过程方式:
create or replace procedure pro_check_year(year in number)
as
v_mod1 number(4) :=mod(year,4);
v_mod2 number(4) :=mod(year,100);
v_mod3 number(4) :=mod(year,400);
begin
if ((v_mod1=0 and v_mod20) or v_mod3=0) then
dbms_output.put_line(year||' yes ');
else dbms_output.put_line(year||' no ');
end if;
exception
when others then
dbms_output.put_line(sqlerrm);
end pro_check_year;
CREATE OR REPLACE FUNCTION IS_LEAP_YEAR(IN_YEAR_STRING VARCHAR2)
RETURN NUMBER IS
--加个输入参数
YEAR_DATE VARCHAR2(8);
--V_DATE DATE;
BEGIN
--V_TEST_DATE := TO_CHAR(1900) || '0229';
--V_TEST_DATE := IN_YEAR_STRING;
--V_DATE := TO_DATE(V_TEST_DATE, 'yyyymmdd');
--RETURN 1;
YEAR_DATE := IN_YEAR_STRING;
IF MOD(YEAR_DATE, 4) 0 THEN
LEAP := FALSE;
ELSIF MOD(YEAR_DATE, 100) 0 THEN
LEAP := TRUE;
ELSIF MOD(YEAR_DATE, 400) 0 THEN
LEAP := FALSE;
ELSE
LEAP := TRUE;
END IF;
IF LEAP THEN
DBMS_OUTPUT.PUT_LINE(YEAR_DATE || '是闰年');
RETURN 1;
ELSE
DBMS_OUTPUT.PUT_LINE(YEAR_DATE || '是平年');
RETURN 0;
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN 2;
END;
看不懂你的意思,,,自己写了个