使用日期函数高级应用的两个SQL语句

本文展示如何使用SQL查询计算并显示员工从入职日期到当前日期的服务年限,包括年、月和天数。
以年月日的方式显示scott.emp中所有员工的服务年限。
语句:select sysdate,hiredate,
 trunc(months_between(sysdate,hiredate)/12)||'年' as 年份差距 ,
 trunc(mod(months_between(sysdate,hiredate) ,12))||'月' as 月份差距 ,
 trunc(sysdate - add_months(hiredate,months_between(sysdate,hiredate)))||'天' as 天差距
from emp;
结果:
SYSDATE HIREDATE 年份差距 月份差距 天差距
-------------- -------------- ------------------------------------------ ---------------------------
---------------------------
11-10月-11 17-12月-80 30年 9月 24天
11-10月-11 20-2月 -81 30年 7月 21天
11-10月-11 22-2月 -81 30年 7月 19天
11-10月-11 02-4月 -81 30年 6月 9天
11-10月-11 28-9月 -81 30年 0月 13天
11-10月-11 01-5月 -81 30年 5月 10天
11-10月-11 09-6月 -81 30年 4月 2天
11-10月-11 19-4月 -87 24年 5月 22天
11-10月-11 17-11月-81 29年 10月 24天
11-10月-11 08-9月 -81 30年 1月 3天
11-10月-11 23-5月 -87 24年 4月 18天
11-10月-11 03-12月-81 29年 10月 8天
11-10月-11 03-12月-81 29年 10月 8天
11-10月-11 23-1月 -82 29年 8月 18天

已选择14行。



显示上个月18号距离今天的天数。
语句:select sysdate as 当前日期,(last_day(add_months(sysdate,-1))-to_char(last_day(add_months(sysdate,-1)),'dd')+18) as 上个月8号

日期,trunc(sysdate - (last_day(add_months(sysdate,-1))-to_char(last_day(add_months(sysdate,-1)),'dd')+18)) as 相差天数 from dual;
结果:
当前日期 上个月8号日期 相差天数
-------------- -------------- ----------
11-10月-11 18-9月 -11 23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值