Oracle学习(三):单行函数(四)

2014-11-24 15:10:24 · 作者: · 浏览: 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> host cls SQL> select last_day(sysdate) from dual; LAST_DAY(SYSDA -------------- 31-10月-12 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>
host cls SQL> --114月后 SQL> select add_months(sysdate,114) from dual; ADD_MONTHS(SYS -------------- 22-4月 -22 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> host cls SQL> --对日期进行四舍五入 SQL> select round(sysdate,'month') 一,round(sysdate,'year') 二 from dual; 一 二 -------------- -------------- 01-11月-12 01-1月 -13 SQL> --隐式转换的前提: 被转换对象是可以转换的 SQL> host cls SQL> --显式转换 SQL> --2012-10-22 16:24:13 今天是星期一 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss"今天是"day') from dual; TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI ---------------------------------- 2012-10-22 16:25:52今天是星期一 SQL> --查询员工的薪水: 货币符号,两位小数,千位符 SQL> select sal, to_char(sal,'L9,999.99') from emp; SAL TO_CHAR(SAL,'L9,999 ---------- ------------------- 800 ¥800.00 1600 ¥1,600.00 1250 ¥1,250.00 2975 ¥2,975.00 1250 ¥1,250.00 2850 ¥2,850.00 2450 ¥2,450.00 3000 ¥3,000.00 5000 ¥5,000.00 1500 ¥1,500.00 1100 ¥1,100.00 SAL TO_CHAR(SAL,'L9,999 ---------- ------------------- 950 ¥950.00 3000 ¥3,000.00 1300