oracle常用系统函数
====================================================
函数的作用:
方便数据的统计,处理查询结果。
函数的分类:
按定义分类:系统函数,自定义函数。
按数据类型:数值函数,字符函数,日期函数,转换函数。
数值函数
1、四舍五入函数:
ROUND(n[,m])
省略m:保留到0位;m>0:小数点后m位;m<0:小数点前m位。
例子:
select round(23.5,0),round(23.5,1),round(23.5,-1) from dual;
2、取整函数:
CEIL()进一;FLOOR()去尾。
例子:
select ceil(23.45),floor(23.4) from dual;
3、取绝对值函数:
ABS(n);
4、取模函数:
MOD(m,n) m,n参数任意一个为null,值为null;
5、指数函数:
POWER(m,n):m的n次幂
6、取平方根:
SQRT(n):n为16,值为4
7、三角函数:
SIN(n),ASIN(n),COS(n),ACOS(n),TAN(n),ATAN(n)
字符函数
1、大小写转换函数:
UPPER(char),LOWER(char),INITCAP(char)
例子:
select upper(‘adbe’),lower(‘NIKE’),initcap(‘addidas’) from dual;
2、获取子字符串函数:
SUBSTR(char[,m[,n]])
例子:
select substr(‘adidas’,2,3),substr(‘adidas’,2),substr(‘adidas’,-2,1) from dual;
3、获取字符串长度:
LENGTH(char) //包含空格在内
4、字符串连接函数:
CONCAT(char1,char2);和||操作符一样
例子:
select concat(‘adi’,’das’) from dual;
select ‘adi’||’das’ from dual;
5、去除字符函数:
TRIM(c1 from c2):从c2字符串中去掉c1字符
LTRIM(c1[,c2]):从c1字符串左边去掉c2字符,直到不是c2为止
RTRIM(c1[,c2]):从c1字符串右边去掉c2字符,直到不是c2为止
TRIM(c1):去掉c1字符串的首尾空格
例子:
select trim (‘a’ from ‘adidas’),ltrim(‘aaddcc’,’a’),rtrim(‘aaddcc’,’c’),trim(’ ppp ‘) from dual;
6、替换函数:
REPLACE(char,s_string[,r_string]):省略r_string则用空格替换。
例子:
select replace(‘adbce’,’ad’,’AB’) from dual;
日期函数
1、SYSDATE:系统时间
默认格式:DD-MON-RR
2、ADD_MONTHS(date,i):
返回在指定日期上添加的月份
3、NEXT_DAY(date,char):
如果char的值是‘星期一’,则返回date指定日期的下周一是哪天
4、LAST_DAY(date)
返回当月份的最后一天
5、MONTHS_BETWEEN(date1,date2)
计算两个日期的月份差
6、EXTRACT(date FROM datetime)
获取当前日期(date可以为year,month,day,hour,…)
例子:
select add_months(sysdate,3),add_months(sysdate,-3) from dual;
select next_day(sysdate,’星期一’) from dual;
select last_day(sysdate),months_between(‘22-4月-14’,’22-4月-15’),extract(day from sysdate) from dual;
转换函数
对不同的数据类型进行转换的函数。
1、日期转字符函数:
TO_CHAR(date[,fmt[,params]]):date,将要转换的日期;fmt,转换的格式;params:日期的语言。
例子:
select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;
2、字符转日期函数:
TO_DATE(char[,fmt[,params]]):char,将要转换的字符;fmt,转换的格式;params:日期的语言。
例子:
select to_date(‘2015-09-24’,’yyyy-mm-dd’) from dual;
注意:显示的时间格式仍然为系统格式,于fmt好像没什么用
3、数字转换成字符函数:
TO_CHAR(number[,fmt]):
其中,9:显示数据并忽略前面的0;
0:显示数字,位数不足用0补齐
.或D:显示小数点
,或G;显示千位符
$:美元符号
S:加正负号(前后都可以)
例子:
select to_char(12345.789,’S99,999.999’) from dual;
4、字符转换为数字的函数:
TO_NUMBER(char[,fmt]) :fmt转换的格式,可以省略。
例子:
select to_number(‘ 1,000′,′ 9999’) from dual;