--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;
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;