如何写时间的详细存储过程的
2021-09-06 来源:开平租房网
如何写时间的详细存储过程?
如何写存储过程,把跨天的日期和时间当天的详细的显示出来,我就简单的举个例子:比如开始日期 8:00,结束日期是 15:00 ,然后我的需求是这样的
日期 开始时间 结束时间 地址
8:00 23:59 台北
00:00 23:59 台北
这些列入全年规划的项目 00:00 23:59 台北
00:00 15:00 台北
CREATE TABLE \"EGIS_ADMIN\".\"NewTable\" (
\"ACTIVITY_ID\" NUMBER(10) NOT NULL ,
\"ACTIVITY_TYPE_ID\" NUMBER(10) ,
\"ASSOCIATE_ID\" NUMBER(10) ,
\"PLAN_SCHEDULE_ID\" NUMBER(10) ,
\"NAME\" VARCHAR2(50 BYTE) ,
\"NUMBER_OF_DONOR\" NUMBER(10) ,
\"PLANNING_VOLUME_OF_BLOOD\" NUMBER(10,2) ,
\"ADDRESS\" VARCHAR2(256 BYTE) ,
\"NEXT_ACTIVITY_DATE\" DATE ,
\"ACTIVITY_START_DATE\" DATE ,
\"ACTIVITY_END_DATE\" DATE ,
PRIMARY KEY(\"ACTIVITY_ID\")
)
create or replace procedure pro_activity (a in varchar2)
is
v_name VARCHAR2(256);
v_sdate VARCHAR2(256);
v_edate VARCHAR2(256);
v_sTime VARCHAR2(256);
v_eTime VARCHAR2(256);
v_addr VARCHAR2(256);
v_count number(10) default 0;
v_number number(2) default 0;
cursor c_act
is select
CONCAT(rstname,ddleName) as fullName,
to_char(tivity_start_date,\'yyyy-mm-dd\') as sdate,
to_char(tivity_end_date,\'yyyy-mm-dd\') as edate,
to_char(tivity_start_date,\'hh24:mi\') as stime,
to_char(tivity_end_date,\'hh24:mi\') as stime,
dress
from activity act
join plan_schedule ps on an_schedule_id = an_schedule_id
join schedule_task_manpower stm on an_schedule_id=hedule_id
join task_manpower tm on hedule_task_manpower_id=hedule_task_manpower_id
join users on er_id=er_id
join plan_schedule_status ps_stauts on rrent_status_id=ps_an_schedule_status_id
where (rrent_status_id=3 or rrent_status_id=4);
begin
OPEN c_act;
LOOP
FETCH c_act INTO v_name,v_sdate,v_edate,v_sTime,v_eTime,v_addr;
v_count:=0;
if(v_edate v_sdate) then
LOOP
if v_count = 0 then
dbms_t_line(\'人员姓名 \'||\'日期 \'||\'开始时间 \'||\'结束时间 \'||\'地址 \');
dbms_t_line(v_name ||v_sdate ||v_sTime|| \'23:59\'|| v_addr);
else
if(v_edate != v_sdate) then
dbms_t_line(\'人员姓名 \'||\'日期 \'||\'开始时间 \'||\'结束时间 \'||\'地址 \');
dbms_t_line(v_name ||v_sdate ||\'00:00\'|| \'23:59\' ||v_addr);
else
dbms_t_line(\'人员姓名 \'||\'日期 \'||\'开始时间 \'||\'结束时间 \'||\'地址 \');
dbms_t_line(v_name ||v_sdate ||\'00:00\'|| v_eTime|| v_addr);
end if;
end if;
EXIT WHEN v_sdate = v_edate;
v_sdate := to_char(to_date(v_sdate,\'yyyy-mm-dd\')+1,\'YYYY-MM-DD\');
v_count := v_count+1;
END LOOP;
else
dbms_t_line(\'人员姓名 \'||\'日期 \'||\'开始时间 \'||\'结束时间 \'||\'地址 \');
dbms_t_line(v_name ||v_sdate ||v_sTime|| v_eTime|| v_addr);
end if;
EXIT WHEN c_act%NOTFOUND;
END LOOP;
close c_act;
end pro_activity ;
石家庄治疗妇科济南治疗包皮过长医院
术后病人吃什么营养恢复快
-
- 上一篇
- 如何写一份成功的求职简历呢
-
- 下一篇
- 如何决定谁在通过服务访问