Oracle单行函数(二)

2014-11-24 17:33:50 · 作者: · 浏览: 1

-------------- -------------- --------------
21-10月-12 22-10月-12 23-10月-12
SQL> --员工的工龄
SQL> select ename,hiredate,(sysdate-hiredate) 天,(sysdate-hiredate)/7 星期,
2 (sysdate-hiredate)/30 月,(sysdate-hiredate)/365 年
3 from emp;


ENAME HIREDATE 天 星期 月 年
---------- -------------- ---------- ---------- ---------- ----------
SMITH 17-12月-80 11632.6571 1661.80815 387.755235 31.8702933
ALLEN 20-2月 -81 11567.6571 1652.52244 385.588569 31.6922111
WARD 22-2月 -81 11565.6571 1652.23672 385.521902 31.6867317
JONES 02-4月 -81 11526.6571 1646.66529 384.221902 31.5798824
MARTIN 28-9月 -81 11347.6571 1621.09387 378.255235 31.0894714
BLAKE 01-5月 -81 11497.6571 1642.52244 383.255235 31.5004303
CLARK 09-6月 -81 11458.6571 1636.95101 381.955235 31.393581
SCOTT 13-7月 -87 9233.65706 1319.09387 307.788569 25.2976906
KING 17-11月-81 11297.6571 1613.95101 376.588569 30.9524851
TURNER 08-9月 -81 11367.6571 1623.95101 378.921902 31.1442659
ADAMS 13-7月 -87 9233.65706 1319.09387 307.788569 25.2976906


ENAME HIREDATE 天 星期 月 年
---------- -------------- ---------- ---------- ---------- ----------
JAMES 03-12月-81 11281.6571 1611.66529 376.055235 30.9086495
FORD 03-12月-81 11281.6571 1611.66529 376.055235 30.9086495
MILLER 23-1月 -82 11230.6571 1604.37958 374.355235 30.7689235


已选择14行。
SQL> select hiredate+sysdate from emp;
select hiredate+sysdate from emp
*
第 1 行出现错误:
ORA-00975: 不允许日期 + 日期
SQL>-- 时间不允许相加


SQL> --last_day 某月的最后一天


SQL> select last_day(sysdate) from dual;


SQL> --MONTHS_BETWEEN 计算工龄
SQL> select (sysdate-hiredate)/30 一,MONTHS_BETWEEN(sysdate,hiredate) 二
2 from emp;


一 二
---------- ----------
387.755329 382.182577
385.588662 380.085802
385.521996 380
384.221996 378.666448
378.255329 372.827738
383.255329 377.698706
381.955329 376.440641
307.788662 303.311609
376.588662 371.182577
378.921996 373.472899
307.788662 303.311609


一 二
---------- ----------
376.055329 370.634189
376.055329 370.634189
374.355329 368.989028


已选择14行。
SQL> --114月后
SQL> select add_months(sysdate,114) from dual;
SQL> --从今天开始算(2012.10.22星期一),下一个星期一
SQL> select next_day(sysdate,'星期一') from dual;


NEXT_DAY(SYSDA
--------------
29-10月-12
SQL> --从今天开始算(2012.10.22星期一),下一个星期二
SQL> select next_day(sysdate,'星期二') from dual;


NEXT_DAY(SYSDA
--------------
23-10月-12



SQL> --对日期进行四舍五入
SQL> select round(sysdate,'mon