Oracle数据库综合应用
查询员工的编号,姓名,雇佣日期,以及计算出每一位员工到今天为止被雇佣的年数,月数,天数。
select empno,ename,hiredate,
TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12) year
FROM emp;
计算年:
计算月:
年的计算结果包含月数,余数实际上就是除12的结果,也就是月数。利用MOD()函数可以求出余数。
select empno,ename,hiredate,
TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12) year,
TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12)) months/*计算剩余月数*/
FROM emp;
计算天数:
公式: 日期1-日期2=数字(天数)
SELECT empno,ename,hiredate,
TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12) year,
TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12)) months,
TRUNC(SYSDATE-ADD_MONTHS(hiredate,MONTHS_BETWEEN(SYSDATE,hiredate))) day
FROM emp;
补充: 由于ADD_MONTHS()函数指:对指定日期增加若干个月之后的日期。
加差额的月份后,年月一致,想减即为天数。