-- Oracle 函数 学习
-- 数值函数 ,(四舍五入, 取整,常用计算,三角) -- 1.四舍五入 round(n[,m]) ,省略m :表示 0 ;m>0 ;小数点后m位 ;m<0 : 小数点前m位 select round(23.4),round(23.45,1),round(23.45,-1) from dual; -- 取整函数 CEIL(n) 取最大; FLOOR(n), 取整取最小 select ceil(23.45),floor(23.45) from dual; -- 常用计算 ABS(n) 取绝对值; select abs(23.45),abs(-23),abs(0) from dual; --MOD(m,n) 取余数 m 代表被除数, n为除数, 其中有一个为null 则结果为null select mod(5,2) from dual; -- POWER(m,n) 返回m的n次幂 select power(2,3),power(2,null) from dual; --SORT(n) 平方根 select sqrt(16) from dual; --========================--
-- 三角函数 SIN(n),ASIN(n) ,COS(n),ACOS(n),TAN(n),ATAN(n)
数值函数
--系统时间,日期操作 --系统时间 SYSDATE 默认格式DD-MON_RR 日月年 select sysdate from dual; --日期操作 1 ADD_MONTHS(date,i) 返回在指定的日期上添加的月份 i可以是任何的整数,若是小数 会自动截取整数,若为负数,则是减去日期 select add_months(sysdate,2),add_months(sysdate,-3),add_months(sysdate,3.8) from dual; -- 日期操作2 NEXT_DAY(date,char) 如果char的值是 星期一 返回的是date指定日期的下周一是哪天 select next_day(sysdate,'星期一') from dual; -- 日期操作函数3 LAST_DAY(date) 返回某个月的最后一天是几号 select last_day(sysdate) from dual; -- 日期操作函数4 MMONTHS_BEWTEEN(date1,date2) 返回两个日期之间相隔的月份 select months_between('20-5月-15','10-1月-15') from dual; -- 日期操作函数 5 EXTRACT(date FROM datetime) select extract(day from sysdate),extract(month from sysdate),extract(year from sysdate) from dual; select extract(hour from timestamp '2016-3-22 17:25:13') from dual;
日期函数
--日期转换成字符的函数 select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; select to_char(sysdate,'YYYY-MM-DD HH12:MI:SS') from dual --字符转换成日期的函数 TO_DATE(char[,fmt[,params]]) params 用于指定日期的语言 select to_date('2016-03-24','YYYY-MM-DD') from dual; -- 数字转换成字符的函数
--TO_CHAR(number,[fmt]) select to_char('12345.678','$99,999.999') from dual; -- 字符转换成数字的函数 TO_NUMBER(char[,fmt]) select to_number('$1,23456','$9999999') from dual; select to_number('+1,23456','S9999999') from dual;
转换函数
--=============字符函数的使用============--
--大小写转换函数,获取字符串函数,字符串连接函数,去除子串函数,替换函数 -- 大小写转换 UPPER(char) LOWER(char) INITCAP(char) 用途: 注册用户名时候不区分大小写 select upper('abde'),lower('ADe'),initcap('ade') from dual; -- 获取子字符串函数 SUBSTR(char,[m[,n]]) .char :源字符串 m:开始的位置 n: 截取的位数 m可以从0开始,n可以省略
-- m为负数,表示从尾部开始往后截取 select substr('autocommit',2,3),substr('autocommit',2),substr('autocommit',-2,5) from dual; -- 获取字符串的长度 LENGTH(char) select length('abd'),length('abc ') from dual; -- 字符串连接函数 CONCAT(char1,char2) select concat('abd','xxx') from dual; -- 上面的等价于下面 select 'abd'||'xxx' from dual; -- 去除子串函数 TRIM(c2 FROM c1); select trim('a' from 'abced') from dual; --LTRIM(c1[,c2]) c1中去除c2 只能去除一个 select ltrim('ababaa','a') from dual; -- RTIRM(c1[,c2]) select rtrim('ababaa','a') from dual; -- TRIM(c1) 只有一个参数 去除两边空格 -- 替换函数 REPLACE(char,s_string[,r_string]) 省略r_string 则被空格替代 select replace('abcde','a','A') ,replace ('abcde','a'),replace ('abcde','ab','A')from dual;
字符函数