Oracle 函数概述
函数的左右
- 方便数据的统计。
- 处理查询结果。
函数分类
- 内置函数
- 数值函数
- 字符函数
- 日期函数
- 转换函数
- 自定义函数
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;
-- 23 23.5 20
2.取整函数
CEIL(n)
向上取整
FLOOR(n)
向下取整
select CEIL(23.4),FLOOR(23.45) from dual;
-- 24 123
3.常用计算
ABS(n)
绝对值函数
select abs(23),abs(-23) from dual;
-- 23 23
MOD(m,n)
取余函数
select mod(5,2) from dual;
-- 1
select mod(5,null) from dual;
-- null
POWER(m,n)
m的n次幂函数
SQRT(n)
n的平方根函数
Oracle 字符函数
1.大小写转换函数
2.获取子字符串函数
3.获取字符串长度函数
4.字符串连接函数
5.去除字串函数
6.替换函数
Oracle 日期函数
1.系统时间函数
SYSDATE
默认格式:DD-MON-RR (日-月-年)
select sysdate from dual;
-- 03-12月-19
2.日期操作
ADD_MONTHS(date,i)
ADD_MONTHS(date,i) 函数的作用是返回在指定日期上添加的月份。
i 可以任何整数,如果是小数系统会自动截取整数
i 为负数时,则相当于减去原来的月份。
NEXT_DAY(date,char)
返回date指定日期的下周char 是哪一天。
select NEXT_DAY(SYSDATE, '星期一') from dual;
-- 09-12月-19
LAST_DAY(date)
返回日期所在月的最后一天
select LAST_DAY(SYSDATE) from dual;
-- 31-12月-19
MONTHS_BETWEEN(date1,date2)
表示两个日期之间相隔的月份
select MONTHS_BETWEEN('15-12月-19','15-3月-19') from dual;
-- 9
EXTRACT(date FROM datetime)
返回日期/时间对应的具体信息
select EXTRACT(YEAR FROM sysdate) from dual;
-- 2019
select EXTRACT(hour from timestamp '2019-12-1 18:30:26') from dual;
-- 18
Oracle 转换函数
1.日期转换成字符的函数
TO_CHAR(date[,fmt[,params]])
- date:将要转换的日期
- fmt:转换的格式
- yyyymmdd
- ...
- params:日期的语言(可省)
sselect TO_CHAR(sysdate,'yyyymmdd') from dual;
-- 20191203
2.字符转换成日期的函数
TO_DATE(char[,fmt[,params]])
- char:将要转换的日期
- fmt:转换的格式
- yyyymmdd
- ...
- params:日期的语言(可省)
TO_DATE( )按照系统默认格式显示日期
select TO_DATE('20191201','yyyymmdd') from dual;
-- 01-12月-19
3.数字转换成字符的函数
TO_CHAR(number[,fmt])
- 9:显示数字并且忽略前面的0
- 0:显示数字,位数不足,用0补齐
- . 或 D:显示小数
- , 或 G:显示千位符
- $ :美元符合
- S:加正负号(前后都可以)
select TO_CHAR(00011.5596,'$99,999.999') from dual;
-- $11.560
4.字符转换成数字的函数
TO_NUMBER(char[,fmt])
- fmt 转换的格式(可以省略)
select TO_NUMBER('$10,00', '$9999') from dual;
-- 1000