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

ORACLE常用函数总结
时常忘记,但是用得十分频繁
nvl:nvl(exp1,exp2)exp1为null,返回exp2,exp1不为null,返回exp1
主要用户转换null值
nullif:nullif(exp1,exp2)exp1=exp2,返回空,不等返回exp1
coalesce:coalesce(exp1,exp2,exp3,....)返回列表中第一个非空表达式
nvl2:nvl2(exp1,exp2,exp3)exp1不为空,返回exp2,exp1为空,返回exp3
mod:求余数,刚才写一段plsql,不记得这个函数,准备自己实现一个,郁闷
to_date:转换日期
to_number:转换数字
trunc:
   --Oracle trunc()函数的用法
/**************日期********************/
1.select trunc(sysdate) from dual  --2011-3-18  今天的日期为2011-3-18
2.select trunc(sysdate, 'mm')   from   dual  --2011-3-1    返回当月第一天.
3.select trunc(sysdate,'yy') from dual  --2011-1-1       返回当年第一天
4.select trunc(sysdate,'dd') from dual  --2011-3-18    返回当前年月日
5.select trunc(sysdate,'yyyy') from dual  --2011-1-1   返回当年第一天
6.select trunc(sysdate,'d') from dual  --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual   --2011-3-18 14:00:00   当前时间为14:41 
8.select trunc(sysdate, 'mi') from dual  --2011-3-18 14:41:00   TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual  --123.458
15.select trunc(123) from dual  --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
substr:截取字符串
add_months:
oracle add_months(time,months)函数可以得到某一时间之前或之后n个月的时间

    如 select add_months(sysdate,-6) from dual;

该查询的结果是当前时间半年前的时间

    select add_months(sysdate,6) from dual;

该查询的结果是当前时间半年后的时间

    select distinct(t.mobile) from twaplogon t where to_char(t.logontime,'yyyy-mm')=to_char(add_months(sysdate,-1),'yyyy-mm')

Instr(char, search_string, startpos, occurrence):返回截取字符串在源串的位置

cast:
rpad:
lengthb:
unistr:
hextoraw:
rawtohex: