(七)函数

函数


1.dual表:

Oracle提供的最小的工作表,只有一行一列,具有某些特殊功用。

select * from dual ;

这里写图片描述


2.函数的作用

 方便数据的统计;
 处理查询结果

3.函数的分类

3.1数值函数

四舍五入
ROUND(n[,m])
--省略m,那么m的默认值为0
--m>0:小数点后m位
--m<0:小数点前m位

例如:
select  round(10.64) , round(10.64 ,1) , round(10.64 ,-1) from dual ;--dual为目标表,专门提供的一行一列的表

这里写图片描述


取整函数
CEIL(n)--取最大值
FLOOR(n)--取最小值


例如:
select ceil(10.64) , floor(10.64) from dual ;

这里写图片描述


常用计算
abs(n)          -- 取绝对值
mode(m,n)       --求余数 ,m为被除数, n为除数, 相当于m%n
power(m,n)      --幂函数, 求m的n次幂
sqrt(m)         --平方根, 求m的平方根
sin(n) ,asin(n) --正弦, 反正弦 ,n是弧度, 不是角度
cos(n) , acos(n)
tan(n) ,atan(n)

3.2字符函数

--大小写转换函数
upper(char) ,lower(char)
initcap(char) --首字母大写函数


--获取子字符串的函数
substr(char, m, n) ;--m表示从什么位置开始截取, n可以省略 ,n省略表示截取到末尾

--获取字符串的长度
length(char) 

--字符串的连接函数
 concat(char1 , char2) ; --等同于char1||char2

--去除一个字符函数 
 trim(char1 from char2) --从char2中去除首个char1, char1是一个字符, char2是字符串
 ltrim(char1, char2) ;--和trim一样 ,从左边去除第一个char1字符
 rtrim(char1 , char2) ;--从右边开始去除
 trim(char), ltrim(char) ,rtrim(char)--表示去除char中的空格


--例如:
select trim('a' from 'abcdab"') from dual ;

这里写图片描述

--替换函数
replace(char , s_string [,r_string]) --用r_string替换char中的s_string

3.3日期函数

--系统时间
sysdate --默认格式DD-MON--RR


--例如
select sysdate from dual ;

这里写图片描述

--日期操作:
add_months(date , n) --给date中添加n个月 , 如果n为负,则减去n个月


例如
select add_months(sysdate , 3) from dual ;

这里写图片描述

next_day(date , char) ;--char是星期几的字符串 ,返回下一个星期几的日期


--例如:
select next_day(sysdate , '星期一') from dual ; --下一个星期一的日期

这里写图片描述

last_day(date) --date中月份的最后一天的日期


--例如
select last_day(sysdate) from dual ; --当前月份的最后一天的日期

这里写图片描述

months_between(date1 ,date2)--两个日期之间间隔的月份


--例如:
select months_between(sysdate , add_months(sysdate , 3) ) from dual ;

这里写图片描述

extract( year[|day|month]  from  date) --获取日期中的一部分

--例如
select extract(year from sysdate) from dual ;

这里写图片描述


3.4转换函数

  • 日期类型转换成字符型

to_char(date[,fmt[,params]]):date表示要转换的日期,fmt表示转换的格式,params表示日期的语言(一般不写)

fmt的取值:年[YY/YYYY/YEAR],月[MM/MONTH],日[DD/DAY],时[HH12/HH24],分[MI],秒[SS]

 --例如:
select   to_char(sysdate , 'YYYY-MM-DD HH24:MI:SS') from dual ;

这里写图片描述


  • 字符类型转日期类型

to_date(str[,fmt[,params]]):str表示日期格式的字符串,fmt表示转换的格式,params表示日期的语言(一般不写),该函数会按照系统默认的格式显示

fmt的取值:年[YY/YYYY/YEAR],月[MM/MONTH],日[DD/DAY],时[HH12/HH24],分[MI],秒[SS]

--例如
select to_date('2017-8-8' , 'YYYY-MM-DD') from dual ;

这里写图片描述


  • 数字转字符

to_char(number[,fmt]):number表示要转换的数字,fmt表示转换的格式
fmt的取值:
[9]表示显示数字并忽略前面的0,
[0]表示显示数字,位数不足,用0补齐,
[.或D]表示显示小数点,
[,或G]表示显示千位符,
[$]表示美元符,
[S]表示加正负号(前后都可以)

--例如:
select to_char(02345.678 ,'999,99.999') from dual ;

这里写图片描述


  • 字符转数字
    to_number(str[,fmt]):str表示数字格式的字符串,fmt表示转换的格式,可以省略
例如:
select to_number('$023,45.678' ,'$999,99.999') from dual ;

这里写图片描述


4总结

  • 数值函数:

    四舍五入:round(n,m)
    取整:floor(n)
    绝对值:abs(n)
    取余数:mod(m,n)
    平方根:sqrt(n)
    三角函数:sin(n)、asin(n)等

  • 字符函数:

    大小写转换函数:upper(char)、lower(char)
    字符串连接:concat(char1,char2)
    获取子字符串:substr(char,m,n)
    获取字符串长度:length(char)

  • 日期函数:

    获取当前时间:sysdate
    添加一定的月份:add_months(date,i)
    查询当月最后一天:last_day(date)
    两个日期月份的差:month_between(date1,date2)
    提取制定日期部分:extract(date from datetime)

  • 转换函数

    to_char(date,fmt,params)
    to_date(char, fmt)
    to_char(number,fmt)
    to_number(char,fmt)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值