oracle中常用得函数

--ASCII(char) :计算char的第一个字符的ASCII值或EBCDIC码值
select ASCII('a')  from dual;
--CHR(n) :计算ASCⅡ码值或EBCDIC码值是n的字符;函数n依赖于计算机系统采用的字符集,n的取值为0~127或0~254之间 
select CHR(65)  from dual;
--INITCAP(char):将char串口的每个单词的首字母变成大写,其余字母变为小写;单词之间用数字、空格、逗号、顿号、冒号、分号、句号、1、@、#、$等字符分隔 
select initcap('jk,cs,aq,ql') from dual;
--INSTR(char1,char[,m[,n]]) :求char1中从m位置起char2第n次出现的位置; m,n缺省值为1,当>0时,表示从char1的首部起始(从左向右)正向搜索;n<0时,表示从char1的尾部起始(从右向左)反向搜索  
select instr('gyhgyhgyhgyh','hg',1,2)  from dual;
--LENGTH(char):计算字符串char的长度 
select length('guoyuhao') from dual;
--LOWER(char):将char中所有的字母改成小写 
select lower('GYH')  from dual;
--LPAD(char1,n[,char2]):从左侧用char2补齐char1至长度n;char2省略时,用空格填充,n<char1的长度时,表示截取char1从左至右侧n个字符 
select lpad('ilove',8,'youyaoyao') from  dual;
select lpad('iloveyouyaoyao',50,'xiaobaobao') from dual;
--RPAD(char1,n[,char2]):从右侧用char2补齐char1至长度n;char2省略时,用空格填充,n<char1的长度时,表示截取char1右侧n个符 
select rpad('ilove',18,'youyaoyao')  from dual;
--LTRIM(char[,SET]):把char1中最左侧的若干个字符去掉,以使其首字符不在SET中, SET表示单个字符组在的字符集合。SET若被省略时,表示截取char左边的前置空格
select ltrim('    guo'),'     guo    '  from  dual;
--RTRIM(char[,SET]):把char中最右侧的若干个字符去掉,以使其尾字符不在SET中, SET表示单个字符组成的字符集合。SET若被省略时,表示截取char右边的后置空格
select rtrim('guo   '),'    guo    '    from dual;  
--REPLACE(char1,char2[,char3]:将char1中出现的所有char2用char3来代替;      char3省略时,则表示删除char1中出现的所有char2 
select replace('guo','u','O') from dual;
--SUBSTR(char,m[,n]):返回char中第m个字符起始n个字符长的子串, n省略时,表示截取char中第m个字符后的子串 
select substr('wert',2,2)  from dual;
--TRANSLATE(char1,from,to):将from字符集转换为to字符集,char中以from表达的字符用to中相对应的字符所代替 
select translate('ddfd',from,to )  from dual;
SELECT TRANSLATE('I am Chinese, I love China', 'China', '中国') "Translate example" FROM DUAL;
SELECT TRANSLATE('我是中国人,我爱中国', '中国', 'China') "Translate example" FROM DUAL;
SELECT TRANSLATE('中国人',substr('中国人',1,length('中国人') - 1),rpad('*',length('中国人'),'*')) "License" FROM DUAL;
select rpad('*',length('中国人'),'*')  from dual;
--UPPER(char) :将char中所有的字母改变大写 
select  upper('gyh')  from  dual;
--ABS(n):计算n的绝对值,允许是数值型常数、数值型列名、包含一个有效数值的文字串或包含一个有效数值的字符型列名
select ABS(-5)  from  dual;
--CEIL(n):计算大于或等于n的最小整数  
select CEIL(10)  from  dual;
--FLOOR(n):计算小于或等于n的最大整数 
select floor(10)  from dual;
--MOD(m,n):计算m除以n的余数n=0时,返回m 
select mod(10,3),mod(10,0)  from dual;
--TRUNC(m,[,n]):n>0时,将m小数点右边n位截断;n<0时,将m小数点左边的n位后各位截断,并添加n个0; n<0时,函数返回NULLn=0或n被省略表示对m进行取整
select trunc(2.26565,3)  from dual;
select trunc(14542.124545,-1) from dual;
--ROUND(m,[,n]) :n>0时,将m四舍五入到小数点右边n位n<0时,将m四舍五入到小数点左边n位, n要求为整数,否则出错n=0或n被省略表示对m进行取整 
select round(2.356,2),round(4545.21,-2),round(45454878.4545,-1.5)  from dual;
--Least(m,n,q,r,s,…), greatest(m,n,q,r,s,…)
--least返回一个最小值;greatest返回一个最大值
select least(12,8,78,45),greatest(12,8,78,45)  from dual;
--ADD_MONTHS(d,n)
--      计算d加上n个月的日期, n要求为整数,n>0时,返回d之后n个月的日期;n<0时,返回d之前n个月的日期
select add_months(sysdate,1) from dual;
--LAST_DAY(d)
--     计算d所在月份最后一天的日期,用来确定给定月份中的天数  
select last_day(sysdate)  from dual;  
--MONTHS_BETWEEN(d1,d2):  求两个日期的月份
--     计算d1和d2之间相隔的月数,返加结果>0时,表示d1晚于d2;返回结果<0时,表示d1早于d2     months_between(date'2014-04-23',date'2013-04-23')?
select months_between(date'2014-04-23',date'2013-04-23')  from dual;
--NEXT_DAY(d,s)
--     计算晚于d的第一个s的日期,s要求是’Sunday’,’Monday’,’Tuesday’,’Wednesday’,’Thursday’,’Friday’或’Saturday’ 
select next_day(date'2016-11-17',1)  from  dual;
select next_day(to_date('19991124','yyyymmdd'),5)   from  dual;
select date'2016-11-17' from  dual;
--SYSDATE
--     求系统当前日期和时间 
select sysdate from dual;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值