oracle查询半年前的记录

思路

采用add_months函数

函数用途

add_months(x,y)或者add_months(times,months)函数:用于计算在时间x加上Y个月后的时间值,要是Y的值为负数的话就是在
           这个时间点之前的时间值(这个时间-Y个月)。

实例

select sysdate from dual;

查询当前时间1个月以前的时间:

select add_months(sysdate,-1) from dual;

 

查询当前时间1个月以后的时间:

select add_months(sysdate,1) from dual;

如对公司员工表:查询2年前进入公司的员工的姓名:

select Ename from Company where sysdate >add_months(time,2*12);

 A:--从emp表查询列出来公司就职时间超过24年的员工名单

           

 select ename, hiredate
 from emp
 where hiredate <= add_months(sysdate, -288);
--负数代表系统时间(sysdate)之前的24年的时间-288 = -24*12


        B:--查询出在员工'SCOTT'入职一年后入职的员工的信息
     

       select ename, a.hiredate, sal
              from emp a, (select hiredate from emp where ename = 'SCOTT') b
             where a.hiredate > = add_months(b.hiredate, 12);

            解析:上面的查询思路如下
            a:在from语句的后面将员工'SCOTT'的入职时间查出放在一个表里,表的别名为b
            b:将上面的b表再次作为查询表
            c:然后利用add_months(x,y)函数在b表的hiredate之后的12个月作为查询条件
        C:--查询半年前的时间
            select add_months(sysdate,-6) from dual;

            解析:dual是oracle提供的最小功能表,它只有一行一列
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值