Oracel 数据库函数

时间:2024-05-27 11:35:32

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

字符函数