日期:2014-05-16  浏览次数:20546 次

oracle常用函数
SQL函数:
   单行函数: 日期函数 数字函数 字符函数 转换函数
    分组函数
    分析函数

日期函数
--当前日期增加12个月
select add_months(sysdate, 12) from dual;
--两个日期相差的月份
select abs(months_between('22-9月-10', '22-9月-11')) from dual;
--返回给定日期最后一天
select last_day('11-2月-10') from dual; --结果: 2010-2-28
--取出年份
select extract(year from sysdate) from dual;


字符函数
--第一个字母变成大写
select initcap('hee') from dual;
--从左面删除'ab'
select ltrim('abhee', 'ab') from dual;
--从右面删除'hee'
select rtrim('abhee', hee) from dual;
--对应字符替换
select translate('Line', 'L', 'D') from dual; --Dine
--replace
 select replace('LineL', 'L', 'Ds') from dual; --DsineDs
--从第二个字符开始找,第二次出现‘a’的位置
select instr('abcdabab', 'a', 2, 2) from dual; --7
--从第二个字符开始取 取4个字符出来
select substr('abcdefg', 2 , 4) from dual; --bcde
--连接函数
select concat('pp', 'oo') from dual; --ppoo

--chr和ascii
select chr(65) from dual; --A
select ascii('A') from dual; --65
--lpad和rpad
select lpad('abcde', 10, '*') from dual; --*****abcde
--trim
select trim(00 from 7600) from dual; --76
select trim('0' from '00ab00') from dual; --'ab'
select trim(leading '0' from '00ab00') from dual; --'ab00'
select trim(trailing '0' from '00ab00') from dual; --'00ab'
--decode
select ename, job, sal,
decode(job, 'CLERK', sal*1.5,
            'SALESMAN', sal*2.0,
                        sal) as "new salary"
from emp;


数字函数
select ceil(44.1) from dual; --45
select floor(44.6) from dual; --44
select round(30.456, 2) from dual; --30.46
select trunc(30.456, 2) from dual; --30.45


转换函数
select to_char(sysdate, 'YYYY"-"fmMM"-"fmDD HH24:MI:SS') from dual;
select to_char(sal, 'C99999') from emp;


Oracle TRUNC用法
select trunc(sysdate,'day') result from dual

=本周第一天
select trunc(sysdate,'yy') result from dual

=本年第一天
select trunc(sysdate,'yy')-1 result from dual

=上年最后一天

select trunc(sysdate,'mm') result from dual

=本月第一天

select trunc(sysdate,'dd') result from dual

当天

ORACLE TO_CHAR(SYSDATE,'D')
DDD是该天在一年内的第多少天,d是在一周内第几天,dd是一个月内的
DY :Day of week abbreviated Mon, Tue, Fri
DAY :Day of week spelled out Monday, Tuesday, Friday
D :Day of week (1–7) 1,2,3,4,5,6,7--注意:每星期的第1天是”星期日“
DD :Day of month (1–31) 1,2,3,4…31
DDD :Day of year (1–366) 1,2,3,4…366