SQL查询即将合同即将到期的员工
生活随笔
收集整理的这篇文章主要介绍了
SQL查询即将合同即将到期的员工
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
在项目开发过程中,我们经常需要查询某些即将到期的资源信息,并给相关的人通过邮件等形式进行提醒。这类需求非常普遍,今天写了一个Demo,能够代表这类问题的解决方案,结合轮询机制,能够很好滴解决此类问题。
1.创建数据
ps:这里涉及到了表变量及Union All语法,不明白的请自行脑补!
传送门:
1.表变量
http://database.51cto.com/art/201011/233290.htm
2.Union 和 Union All
http://www.w3school.com.cn/sql/sql_union.asp
--Insert test records INSERT INTO @Employees SELECT 'Ryan', '1972-06-01' UNION ALL SELECT 'James', '1985-06-02' UNION ALL SELECT 'Jasson', '1983-06-03' UNION ALL SELECT 'Tara', '1991-06-04' UNION ALL SELECT 'William', '1992-06-05' UNION ALL SELECT 'Judy', '1989-06-06' UNION ALL SELECT 'Justin', '1989-06-07';
2.设置间隔日期
--Variable to provide required number of days DECLARE @IntervalDays INT; SET @IntervalDays = 3;
3.查询结果
SELECT * FROM @Employees WHERE DATEADD( Year, DATEPART( Year, GETDATE()) - DATEPART( Year, ExpiredDate), ExpiredDate)BETWEEN CONVERT( DATE, GETDATE()) AND CONVERT( DATE, GETDATE() + @IntervalDays);
4.通常都是查询一周内即将到期的,我们可以使用如下sql
SELECT * FROM @Employees WHERE DATEPART( Week, DATEADD( Year, DATEPART( Year, GETDATE()) - DATEPART( Year, ExpiredDate), ExpiredDate))= DATEPART( Week, GETDATE());
第一种和第二种sql查询结果如下:
总结
以上是生活随笔为你收集整理的SQL查询即将合同即将到期的员工的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 集合(list、set、map)的简单升
- 下一篇: oracle数据库索引增加和删除