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;--找第二个参数在第一个参数中出现第几次(第四个参数)的位置,第三个参数为起始位置,可为负数(反向搜索)






















































原文地址:https://www.cnblogs.com/mhdtysp/p/3677986.html