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和asciiselect chr(65) from dual; --Aselect ascii('A') from dual; --65--lpad和rpadselect lpad('abcde', 10, '*') from dual; --*****abcde--trimselect trim(00 from 7600) from dual; --76select 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'--decodeselect 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; --45select floor(44.6) from dual; --44select round(30.456, 2) from dual; --30.46select 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 (17) 1,2,3,4,5,6,7--注意:每星期的第1天是”星期日“
DD :Day of month (131) 1,2,3,4…31
DDD :Day of year (1366) 1,2,3,4…366