Oracle 系统函数

字符函数
lower 全部小写

查询emp员工姓名,以小写显示
select lower(ename) from emp;
upper 全部大写
select upper(ename) from emp;

initcap 首字母大写
查询emp员工姓名,首字母大写
select initcap(ename) from emp;

substr 字符串截取
substr(ename,1,3)
查询名字的前三个字母
select substr(ename,1,3) from emp;

length 字符长度
查询名字长度是5的员工
select ename from emp where length(ename)=5

Oracle 链接符 ||

首字母小写 后面的大写

select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;

使用查询输出SCOTT的工作是ANALYST
select ‘SCOTT的工作是’||job from emp where ename=‘SCOTT’;

instr 字符位置
查询HELLOWORLD中W的位置
select instr(‘HELLOWORLD’,‘W’) from dual;
查询名字中包含A的员工信息
select ename from emp where ename like’%A%’;
select ename from emp where instr(ename,‘A’)>0

trim 删除字符两边空格
删除Hello中的H
select trim('H’from ‘Hello’) from dual;

replace 替换
repalce(str,el,e2)
把姓名中的A替换成a
select replace(ename,‘A’,‘a’) from emp;
select ename,replace(ename,‘A’,‘a’) from emp;

数学函数
round 四舍五入
格式:round(m,n)
ROUND函数四舍五入列、表达式或者n位小数的值。如果第二个参数是0或者缺少,值被四舍五入为整数。如果第二个参数是2,值被四舍五入为两位小数。如果第二个参数是–2,值被四舍五入到小数点左边两位。
ROUND函数可以被用于日期函数。

select round(45.656,2) from dual; 45.66

计算日薪 每个月30天,保留两位

select round(sal/30,2) from emp;

trunc 截断
格式:trunc(m,n)
TRUNC函数截断列、表达式或者n位小数值。
TRUNC函数对参数起的作用类似于ROUND函数。如果第二个参数是0或者缺少,值被截断为整数。如果第二个参数是2,值被截断为两位小数。如果第二个参数是–2,值被截断到小数点左边两位。

trunc(45.9)=45
select trunc(45.9) from dual;
select trunc(45.932,-2) from dual;

MOD
格式:mod(m,n)
MOD函数找出值m除以值n的余数。
注:MOD函数经常用于确定一个值是奇数还是偶数。
mod(10,3)=1
select mod(10,3) from dual;
45 奇数
mod(45,2)=1
select mod(45,2) from dual;

floor 向下取整

floor(9.9)=9
select floor(9.9) from dual;
ceil 向上取整
ceil(9.9)=10
ceil(9.1)=10
select ceil(9.0) from dual;=9
select ceil(9.1) from dual;=10
abs 绝对值
abs(-1)=1
select abs(-1) from dual;
power(m,n) M的N次幂
select power(3,2) from dual;=9

系统时间
sysdate
select sysdate from dual;

months_between 两个时间之间的月数

select months_between(sysdate,‘1-9月-2015’) from dual;

add_months 给指定时间添加月数
给2015-9-1加2个月
select add_months(‘1-9月-2015’,6) from dual;

next_day() 查询指定时间下一个星期几的日期
select sysdate, next_day(sysdate,‘星期五’) from dual;

last_day() 指定时间的最后一天
select last_day(‘1-2月-2016’) from dual;

round
select round(sysdate) from dual; 2016-9-18
select round(to_date(‘2-5月-2016’),‘year’) from dual; 2016-1-1

trunc
select trunc(sysdate) from dual;
select sysdate, trunc(sysdate,‘year’) from dual;
select sysdate, trunc(sysdate,‘month’) from dual;
select sysdate, trunc(sysdate,‘day’) from dual;

select trunc(to_date(‘2016-7-4’,‘yyyy-mm-dd’),‘year’) from dual;

入职天数
Select ename,hiredate,round(months_between(sysdate,hiredate)*30) from emp;

查询入职时间2016-9-18
select to_char(hiredate,‘yyyy-MM-dd’) from emp;
select to_char(1210.73,‘9999.9’) from dual;
select to_char(1210.73,’$9,999.00’) from dual;

select to_date(‘20070701’,‘yyyy-mm-dd’) from dual;

to_number 2016918
select to_number(‘2016918’) from dual;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值