Oracle常用函数

--今天日期
select sysdate from dual;
--系统自动生成32位id
select sys_guid() from dual;
--日期格式说明
/*Year:
    yy  :两位年               
    yyy :三位年            
    yyyy:四位年
Month:      
    mm  :两位月
Day:
    dd  :当月第几天
    ddd :当年第几天
    dy  :当周第几天简写
    day :当周第几天全写
Hour: 
    hh  :12小时进制
    hh24:24小时进制
Minute: 
    mi  :60进制
Second: 
    ss  :60进制
其它: 
    Q   :季度
    WW  :当年第几周 
    W   :当月第几周 */
--日期格式转换
select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual
--字符串转日期格式
select to_date('2016-12-9' , 'yyyy-MM-dd') from dual
--字符串截取,从字符串的第i位开始返回长度为j的子字符串,如果j为空,则直到串的尾部
select substr('Message',1,4) from dual
--去掉字符串首位空格
select trim(' space padded ') trim from dual;
--四舍五入,第二个参数为保留小数位数,省略0
select round(34.698787,3) from dual;
--截取小数,不按照四舍五入
select trunc(34.698787,1) from dual;
--向上取整
select ceil(5.1) from dual;
--向下取整
select floor(6.1) from dual;
--数字格式化,小数后第三第四为不足补0,结果为12345.1230
select to_char(12345.123,'99999999.9900') from dual;
--结果为  .1230
select to_char(0.123,'99999999.9900') from dual;
--结果为  0.1230
select to_char(0.123,'99999990.9900') from dual;
--绝对值
select abs(-5) from dual
--求余
select mod(5,3) from dual
--大写
select upper('zzz') from dual
--小写
select lower('sDF') from dual
--检查字段是否为空,检查student表的all字段是否为空,如果为空,置为0
select nvl(t1.all,0) from student t1
--decode,即if else if ,最后一个为缺省值,即不满足前面所有的值的情况下,输出的默认值
select decode(t1.all,0,'总分为0','100','满分','分数为xxx') from student t1
--wm_concat可将多行中某列或多列的值拼接成一个值返回
select to_char(wm_concat(id)) from student
--MONTHS_BETWEEN检查两个日期间相隔多少月,第1个参数比第2个小,则为负数
select MONTHS_BETWEEN(sysdate,to_date('2017-02-01','yyyy-mm-dd')) from dual 
--CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔
--在create table as select中可能用到
SELECT CAST('123' AS varchar2(4)) as result from dual;
--将某个字符串分割为几行。可用于select查询中的in
--待分割字符串CD-FCHANNEL-770100287000
--分割字符 -
--结果:
--CD
--FCHANNEL
--770100287000
select regexp_substr('CD-FCHANNEL-770100287000', '[^-]+', 1, rownum)
  from dual
connect by rownum <=
           length(regexp_replace('CD-FCHANNEL-770100287000', '[^-]', null)) + 1

 

posted on 2016-12-09 12:07  干饭君  阅读(133)  评论(0)    收藏  举报

导航