函数的作用:方便数据的统计
函数分类:数值函数、字符函数、日期函数、转换函数
在查询中使用函数:将小写字母转换成大写
数值函数:四舍五入:ROUND(n [,m]) n表示要进行四舍五入的值、m表示保留小数点后几位或前几位
m>0:小数点后m位;m<0:小数点前m位
取整函数:CEIL(n):取上限
FLOOR(n):取下限
ABS(n):取绝对值
MOD(m,n):m除以n,取余函数,n可以为null,结果为空
POWER(m,n):表示返回m的n次幂;2^3表示2的3次幂;m可以为null,结果为空
SQRT(n):求平方根
select sqrt(16) from dual;
三角函数:SIN(n)、ASIN(n)
COS(n)、ACOS(n)
TAN(n)、ATAN(n)
其中n表示弧度
字符函数:大小写转换函数:UPPER(char)、LOWER(char)、INITCAP(char)
select upper('abde'),lower('ADe'),initcap('asd') from dual;
获取子字符串函数:SUBSTR(char,[m [,n]]) n可以省略,当n省略时表示从m的位置截取到字符串末尾;m为0,表示从字符串的首字母开始截取;m为负数,表示从字符串的尾部开始截取
获取字符串长度函数:LENGTH(char)
select length('acd ') from dual;
字符串连接函数:CONCAT(char1,char2); 与||操作符的作用一样
去除子串函数:TRIM(c2 from c1) c2只能表示一个字符
LTRIM(c1[,c2]) 从字符串左边c1中去除c2一个字符
RTRIM(c1[,c2]) 从字符串尾部c1中去除c2一个字符
TRIM(c1) 代表去除首尾的空格
替换函数:REPLACE(char,s_string[,r_string]) 省略r_string的话会用空格替换
select replace('abced','a','A') from dual;
select replace('abced','a') from dual;
日期函数:系统时间 SYSDATE 默认格式:DD-MON-RR
select sysdate from dual;
日期操作:ADD_MONTHS(date,i); 如果i是负数,则相当于原日期减去月份
NEXT_DAY(date,char); 如果char的值是‘星期一’,则返回date指定日期的下周一是哪天
select next_day(sysdate,'星期一') from dual;
Last_DAY(date); 返回当前月份的最后一天
select last_day(sysdate) from dual;
MONTHS_BETWEEN(date1,date2); 表示两个日期之间相隔的月份
select months_between('20-5月-15','10-1月-15') from dual;
EXTRACT(date FROM datetime);
select extract(day from sysdate) from dual;
转换函数:日期转换成字符的函数:TO_CHAR(date[,fmt[,params]]) 参数说明:date:将要转换的日期;fmt:转换的格式;params:日期的语言
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
字符转换成日期的函数:TO_DATE(char[,fmt[,params]]) params:用于指定日期的语言
select to_date('2015-05-22','YYYY-MM-DD') from dual;
数字转换成字符的函数:select to_char(12345.678,'$99,999.999') from dual;
9:显示数字并忽略前面的0;
0:显示数字,位数不足,用0补齐
.或D:显示小数点
,或G:显示千位符
$:美元符号
S:加正负号(前后都可以)
字符转换成数字的函数:TO_NUMBER(char[,fmt]) fmt是转换的格式,可以省略
select to_number('$1,000','$9999') from dual;
在查询中使用函数:查询5月份入职的员工信息:select * from users where extract(month from regdate) = 5;