2天后的日期
- select sysdate+2 from dual;
员工入职后3天的日期
- select hiredate,hiredate-3 from emp;
员工的转正日期
- select hiredate 入职日期,hiredate+30*3 转正日期 from emp;
add_months(d,x)
select hiredate 入职日期,add_months(hiredate,3) 转正日期 from emp;
select hiredate 入职日期,add_months(hiredate,-1) 转正日期 from emp;
LAST_DAY(d) 返回的所在月份的最后一天
当前月份最后一个的日期
- select last_day(sysdate) from dual;
入职月份的最后一天
- select last_day(hiredate) from emp;
months_between(date1,date2) 返回date1和date2之间月的数
员工入职时间
select months_between(sysdate,hiredate) from emp; --月
next_day(sysdate,‘星期一’) 下周星期一
下个周一
select next_day(sysdate,‘星期一’) from dual;
下个周四 即将要过的下一个周四
select next_day(sysdate,‘星期四’) from dual;
to_date(c,m) 字符串以指定格式转换为日期
- select to_date(‘2018-05-15 2:38:33’,‘yyyy-mm-dd hh12:mi:ss’) from
dual; - select to_date(‘2018年05月15日 2:38:33’,‘yyyy"年"mm"月"dd"日" hh12:mi:ss’)
from dual;
to_char(d,m) 日期以指定格式转换为字符串
- select to_char(sysdate,‘yyyy"年"mm"月"dd"日" hh12:mi:ss’) from dual;
组函数 count() sum() max() min() avg()
count(字段|*|1)
计算所有员工的个数
- select count(empno) from emp;
- select count(*) from emp;
- select count(1) from emp;
求有员工存在的部门个数
- select count(distinct deptno) from emp;
- select count(distinct 1) from emp;
- select count(deptno) from dept where deptno in(select distinct deptno from emp);
求一个公司这个月的薪资开销
- select sum(sal) from emp;
- select sum(sal) from emp where deptno=20;
求公司最高薪资
- select max(sal) from emp;
求公司最低薪资
- select min(sal),max(sal),ename from emp;
- select min(sal) from emp;
求公司薪资最低的人和薪资
- select ename, sal from emp where sal = (select min(sal) from emp);
求30部门的平均薪资
- select avg(sal) from emp where deptno=30;
求薪资高于平均薪资的员工姓名
- select ename,sal from emp where sal>(select avg(sal) from emp);