在看完Oracle单行函数之后的练习题,巩固一下知识。
先回顾雇员表表的所有数据
SECLECT * FROM emp;
1、找出每个月倒数第三天受雇的所有员工
· 在emp表中跟雇佣日期有关的字段是 hiredate, 每个雇员有自己的雇佣日期,则每个雇佣日期所在月的最后一天也一定不相同;
· 如果想要求出某一个雇佣日期所在月的最后一天,则使用LAST_DAY()函数即可。
· WHERE 子句的判断条件: hiredate=LAST_DAY(hiredate)-2;
SELECT empno,ename,hiredate,LAST_DAY(hiredate),LAST_DAY(hiredate)-2
FROM emp;
范例:最终实现
SELECT *
FROM emp
WHERE hiredate=LAST_DAY(hiredate)-2;
2、找出早于12年前受雇的员工
· 12年前受雇,肯定要求年,求年最精确的做法是按照 月/12 计算;
· 两个日期之间的月使用 MONTHS_BETWEEN()函数完成;
· WHERE 子句之中只需要判断计算结果大于12即可;
SELECT *
FROM emp
WHERE MONTHS_BETWEEN(SYSDATE,hiredate)/12 > 12;