-- 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 则结果为nullselect 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;
1 --=============字符函数的使用============-- 2 --大小写转换函数,获取字符串函数,字符串连接函数,去除子串函数,替换函数 3 4 -- 大小写转换 UPPER(char) LOWER(char) INITCAP(char) 用途: 注册用户名时候不区分大小写 5 6 select upper('abde'),lower('ADe'),initcap('ade') from dual; 7 8 -- 获取子字符串函数 SUBSTR(char,[m[,n]]) .char :源字符串 m:开始的位置 n: 截取的位数 m可以从0开始,n可以省略 9 -- m为负数,表示从尾部开始往后截取10 11 select substr('autocommit',2,3),substr('autocommit',2),substr('autocommit',-2,5) from dual;12 13 -- 获取字符串的长度 LENGTH(char)14 15 select length('abd'),length('abc ') from dual;16 17 -- 字符串连接函数 CONCAT(char1,char2) 18 19 select concat('abd','xxx') from dual;20 21 -- 上面的等价于下面22 23 select 'abd'||'xxx' from dual; 24 25 -- 去除子串函数 TRIM(c2 FROM c1); 26 27 select trim('a' from 'abced') from dual;28 29 --LTRIM(c1[,c2]) c1中去除c2 只能去除一个30 31 32 select ltrim('ababaa','a') from dual;33 34 -- RTIRM(c1[,c2])35 36 select rtrim('ababaa','a') from dual;37 38 -- TRIM(c1) 只有一个参数 去除两边空格 39 40 41 -- 替换函数 REPLACE(char,s_string[,r_string]) 省略r_string 则被空格替代42 43 select replace('abcde','a','A') ,replace ('abcde','a'),replace ('abcde','ab','A')from dual;