记载Oracle常用函数

来源:互联网 发布:淘宝导航条大小 编辑:程序博客网 时间:2024/06/10 13:00

一.数值型函数

     1.取得数值的绝对值

     ABS(x)
   【功能】返回x的绝对值
   【参数】x,数字型表达式
   【返回】数字
   【示例】
    select abs(100),abs(-100) from dual;

    sign(x)
  【功能】返回x的正负值
  【参数】x,数字型表达式
  【返回】数字,若为正值返回1,负值返回-1,0返回0
  【示例】
    select sign(100),sign(-100),sign(0) from dual;

    ceil(x)
  【功能】返回大于等于x的最小整数值
  【参数】x,数字型表达式
  【返回】数字
  【示例】
    select ceil(3.1),ceil(2.8+1.3),ceil(0) from dual;
   返回4,5,0

    floor(x)
 【功能】返回小于等于x的最大整数值
 【参数】x,数字型表达式
 【返回】数字
 【示例】
   select floor(3.1),floor(2.8+1.3),floor(0) from dual;
   返回4,5,0


   round(x[,y])
 【功能】返回四舍五入后的值
 【参数】x,y,数字型表达式,如果y不为整数则截取y整数部分,如果y>0则四舍五入为y      位小数,如果y小于0则四舍五入到小数点向左第y位。
 【返回】数字
 【示例】
   select round(5555.6666,2.1),round(5555.6666,-2.6),round(5555.6666) from dual;
   返回:   5555.67     ,    5600    ,    5556
  

   二.字符串函数

    LOWER(c1)
 【功能】:将字符串全部转为小写
 【参数】:c1,字符表达式
 【返回】:字符型
 【示例】
   select lower('AaBbCcDd')AaBbCcDd from dual;
 【同类】UPPER()将字符串全部转为大写。

  

   LENGTH(c1)
 【功能】返回字符串的长度;
 【说明】多字节符(汉字、全角符等),按2个字符计算
 【参数】C1 字符串
 【返回】数值型
 【示例】
   select length('高乾竞'),lengthB('高乾竞') from dual;


   SUBSTRB(c1,n1[,n2])
 【功能】取子字符串
 【说明】多字节符(汉字、全角符等),按2个字符计算
 【参数】在字符表达式c1里,从n1开始取n2个字符;若不指定n2,则从第y个字符直到结      束的字串.
 【返回】字符型,如果从多字符右边开始,则用空格表示。
 【示例】
   select substr('我手机13012345678',4,11),substrb('我手机                  13012345678',4,11),substrb('我手机13012345678',3,11) test from dual;


   INSTRB(C1,C2[,I[,J]])
 【功能】在一个字符串中搜索指定的字符,返回发现指定的字符的位置;
 【说明】多字节符(汉字、全角符等),按2个字符计算
 【参数】
   C1    被搜索的字符串
   C2    希望搜索的字符串
    I     搜索的开始位置,默认为1
    J     第J次出现的位置,默认为1
  【返回】数值
  【示例】select instr('重庆某软件公司','某',1,1),instrb('重庆某软件公司','某',1,1) instring     from dual;


     三.转换函数

     TO_DATE(X[,c2[,c3]])
  【功能】将字符串X转化为日期型
  【参数】c2,c3,字符型,参照to_char()
  【返回】字符串
    如果x格式为日期型(date)格式时,则相同表达:date x
    如果x格式为日期时间型(timestamp)格式时,则相同表达:timestamp 
  【相反】 to_char(date[,c2[,c3]])
  【示例】
    select to_date('199912','yyyymm'),
    to_date('2000.05.20','yyyy.mm.dd'),
    (date '2008-12-31') XXdate,
    to_date('2008-12-31 12:31:30','yyyy-mm-dd hh24:mi:ss'),
    (timestamp '2008-12-31 12:31:30') XXtimestamp
    from dual;     

   

   ROWIDTOCHAR(rowid)
 【功能】转换rowid值为varchar2类型
 【参数】rowid,固定参数
 【返回】返回长度为18的字符串
 【示例】
   SELECT ROWIDTOCHAR(rowid) FROM DUAL;
 【说明】
   在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定      了每条记录是在Oracle中的哪一个数据文件、块、行上。
   在重复的记录中,可能所有列的内容都相同,但rowid不会相同.

     

    四.日期函数

     sysdate
  【功能】:返回当前日期。
  【参数】:没有参数,没有括号
  【返回】:日期
  【示例】select sysdate  hz from dual;
    返回:2008-11-5


    months_between(d1,d2)
  【功能】:返回日期d1到日期d2之间的月数。
  【参数】:d1,d2 日期型
  【返回】:数字
    如果d1 大于 d2,则返回正数
    如果d1 小于 d2,则返回负数
   【示例】
     select sysdate,
     months_between(sysdate,to_date('2006-01-01','YYYY-MM-DD')),
     months_between(sysdate,to_date('2016-01-01','YYYY-MM-DD')) from dual;