Oracle之我见

--1,使用单行字符型函数的实例
--1.1 查询
select empno,ename,job
from  emp
where job='salesman'
--错误,无结果


--正确的
select empno as "Code",upper(ename) NAME,initcap(job) "Job"
from emp
where lower(job)='salesman'


--1.2 查询
select concat(ename,job) "Employee",substr(job,1,5) "Title",
       length(ename) "Length",instr(job,'M')
from emp
where lower(job)='salesman'


--2,数字型函数
--round 四舍五入
--trunc 截取到小树点后n
--mod (m ,n ) m%n


--2.1
select round(168.333,1),trunc(168.333,1)
from dual;  


--2.2
select round(168.888,0),trunc(168.888,0)
from dual;  


--2.3
select round(168.888),trunc(168.888)
from dual


--2.4
select round(168.888,-1),trunc(168.888,-1)
from dual


--2.5
select mod(1900,400)
from dual


--3 日期型数据的处理
alter session set NLS_DATE_LANGUAGE='AMERICAN';


--3.1 日期型数据和一个数字相加减,救过仍为日期型
select sysdate-20
from dual


--两个日期型数据相加减,结果为数字型
select sysdate-to_date('15-JUL-02')
from dual
--或者
select sysdate-to_date('2015-6-02','yyyy-mm-dd')
from dual


--3.2查询所有推销员的工龄
select empno,ename,job,sal,(sysdate-hiredate)/365 "Years"
from emp
where job like 'SAL%'


--4 常用的日期函数:
      /* 4.1
          MOTHS_BETWEEN(日期1,日期2):
         该函数返回月数。
      */
--4.1
select months_between('01-JUL-99','03-FEB-98')  
from dual  


     /* 4.2
       add_months(日期,n)
       把n个月加到日期上
     */       
select add_months(to_date('2015/10/01','yyyy/mm/dd'),8)
from dual




      /* 4.3
         next_day(日期,字符串):
         返回下一个由字符串(星期几)指定的日期
      */ 
select next_day('2016/7/02','星期一')
from dual


select next_day(to_date('2016/7/19','yyyy/mm/dd'),'星期一')
from dual


     /* 4.3
         last_day(日期 )
         返回该日期所在月的最后一天
      */ 
--示例<1>
select last_day('19-JULY-16')
from dual;
--示例<2>
select ename,hiredate,last_day(hiredate),next_day(hiredate,'SUNDAY'),
months_between(sysdate,hiredate) "Months",
add_months(hiredate,3) "Review"
from emp


--5, round和trunc 函数用于日期型数据


select round(to_date('28-OCT-01'),'MONTH')
from dual























































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值