oracle中常用函数
--数值型常用函数-- select ceil(10.6) from dual;--返回大于它的最小整数 select floor(10.6) from dual;--返回小于它的最大整数 select mod(10,3) from dual;--返回余数 select sign(3) from dual;--大于0就返回1,等于0就返回0,小于0就返回-1 select sqrt(25) from dual;--开方 --常用字符函数-- select initcap('hahah,hahh') from dual;--将每个字符串的手写字母换为大写 select lower('SAFD') from dual;--将每个字符都换成小写 select replace('asdfda','a','z') from dual;--将字符串(第一个参数)中所有的字符(第二个参数)换成字符(第三个参数) select length('asdfa') from dual;--求字符串的长度 --日期型函数-- select sysdate from dual;--获取当前日期和时间 select last_day(sysdate) from dual;--获取给定日期(参数)月内的最后一天 select months_between(to_date('20140121','YYYYMMDD'),sysdate) from dual;--获取第一个参数和第二个参数间相隔的月数(可为小数,也可为负数(前边-后边)) --特殊格式的日期函数 select to_char(sysdate,'YYY') from dual;--Y或YY或YYY 年的最后一位,两位,三位 select to_char(sysdate,'Q') from dual; select to_char(sysdate,'MM') from dual;--获取月份 select to_char(sysdate,'RM') from dual;--月份的罗马表示 select to_char(sysdate,'month') from dual; select to_char(sysdate,'ww') from dual;--当年的第几周 select to_char(sysdate,'w') from dual;--本月的第几周 select to_char(sysdate,'DDD') from dual;--当年的第几天 select to_char(sysdate,'DD') from dual;--当月的第几天 select to_char(sysdate,'D') from dual;--周内第几天(周日为第一天) select to_char(sysdate,'DY') from dual; --周几 select to_char(sysdate,'hh12') from dual;--12小时制小时数 select to_char(sysdate,'hh24') from dual;--24小时制小时数 select to_char(sysdate,'Mi') from dual;--分钟数 select to_char(sysdate,'ss') from dual;--秒数 select to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') from dual; --类型转换-- select to_number('88877') from dual; select to_char(88877) from dual; --字符函数-- SELECT CONCAT('Jim', ' is a ') FROM dual;--返回连接第二个参数的第一个参数 SELECT LPAD('JIMMY',10,'*') FROM dual;--返回第一个参数,左起由第二个参数中的字符补充到“n”个字符长。如果第一个参数比“n”长,则函数返回“第一个参数的前“n”个字符 SELECT LTRIM('abcdab','abc') FROM DUAL;--从左边删除字符,此处“string”是数据库的列,或者是字面字符串,而第二个参数是我们要去掉的字符的集合。 SELECT REPLACE('JACK and JUE','J','BL') FROM DUAL;--REPLACE(string, if, then),用 0 或其他字符代替字符串中的字符。“if”是字符或字符串,对于每个出现在“string”中的“if”,都用“then”的内容代替。 SELECT RPAD('JIMMY',1,'*') FROM dual;--返回“char1”,右侧用“char2”中的字符补充到“n”个字符长。如果 “char1”比“n” 长,则函数返回“char1”的前“n”个字符。 SELECT RTRIM('abcdef', 'f') FROM DUAL;--从右侧删除字符,此处第一个参数是数据库的列,或者是字面字符串,而第二个参数是我们要去掉的字符的集合。 /*SELECT ename FROM emp WHERE SOUNDEX(ename) = SoUNDEX('SMYTHE');*/ SELECT SUBSTR('ABCDEFGIJKLM',3,4) FROM DUAL;--字符串截取 SELECT TRANSLATE('JIMMY','AEIOU', 'XXXXX') FROM dual;--后边相同位置的字符替换前边 SELECT UPPER('aptech computer education') FROM dual;--返回大写string SELECT ASCII('APTECH') from dual;--该函数返回 “string”中第一个(最左边)字符的 ASCII 值。 SELECT INSTR('aptech is aptech ap','ap',1,2) FROM DUAL;--找第二个参数在第一个参数中出现第几次(第四个参数)的位置,第三个参数为起始位置,可为负数(反向搜索)