llgd.net
当前位置:首页 >> pl/sql计算每位员工工作了多少年零多少月零多少天... >>

pl/sql计算每位员工工作了多少年零多少月零多少天...

-- 声明游标;CURSOR cursor_name IS select_statement--For 循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标declare --类型定义 cursor c_job is select empno,ename,job,sal from emp where job='MANAGER'; --定...

这个不用写代码吧,各种语言都有计算日期间隔的方法,有的可以直接取到天数。具体要看你到底是个什么需求。

使用extract方法,如下:select extract(year from sysdate)from dual; --当前年select extract(month from sysdate) from dual; --本年到当月的月数select extract(day from sysdate)from dual; --本月到当日的天数

用months_between() 函数求出两个日期相差的月数,这个求出来比较准确,可以满足精确计算工龄也比较符合业务需求,再除以12 select months_between(sysdate,date'2012-01-01') from dual;

declare cursor query_info is select e.emp_no, e.emp_name,e.sal,e.dept_no from emp e order by e.emp_no; emp_sal emp.sal%TYPE; emp_no dbms_sql.Number_Table; emp_name dbms_sql.Varchar2_Table; dept_no dbms_sql.Number_Table; begin f...

declare rt_end Date; rt_first varchar(20); begin rt_end:=to_date('2012-02-14','yyyy-mm-dd'); rt_first:=to_char(rt_end,'yyyy-mm')||'-01'; dbms_output.put_line(rt_first); end; / 我不清楚你的题目是要求什么的,所以也不知要怎么做,...

如下 SELECT SYSDATE 当前时间, TRUNC(SYSDATE) 当前日期, trunc((SYSDATE - TRUNC(SYSDATE)) * 24) 今天已过小时, trunc((SYSDATE - TRUNC(SYSDATE)) * 24 * 60) 今天已过分钟 FROM DUAL;

因为你这个表里没有4季度的数据,而又要显示的话,只能通过判断然后加入一条数据。 或是使用另一个表,表里存的是季度信息,然后与统计结果进行left join操作。 就象是,公司有员工表,员工100人,统计某段时间的员工请假情况。可能会有很多员工...

declarerec_sal emp.sal%type;rec_empno emp.empno%type;--加了一个变量,员工号cursor c1 isselect empno,sal from emp;--取游标时把员工号也取出 begin open c1; loop fetch c1 into rec_empno,rec_sal; if rec_sal

select object_name from user_objects where lower(object_type)='table';这是查表名 对于每个表的列只能用desc table_name;了,一个表一个表的查, 这可以查出当前用户下的表,也就是说你想要知道所有的表,就得用各个用户去连接,然后查它名下有多...

网站首页 | 网站地图
All rights reserved Powered by www.llgd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com