SQL查询即将合同即将到期的员工
来源:互联网 发布:linux下新建文件夹 编辑:程序博客网 时间:2024/05/01 16:49
在项目开发过程中,我们经常需要查询某些即将到期的资源信息,并给相关的人通过邮件等形式进行提醒。这类需求非常普遍,今天写了一个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 recordsINSERT INTO @EmployeesSELECT 'Ryan', '1972-06-01' UNION ALLSELECT 'James', '1985-06-02' UNION ALLSELECT 'Jasson', '1983-06-03' UNION ALLSELECT 'Tara', '1991-06-04' UNION ALLSELECT 'William', '1992-06-05' UNION ALLSELECT 'Judy', '1989-06-06' UNION ALLSELECT 'Justin', '1989-06-07';
2.设置间隔日期
--Variable to provide required number of daysDECLARE @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 @EmployeesWHERE DATEPART( Week, DATEADD( Year, DATEPART( Year, GETDATE()) - DATEPART( Year, ExpiredDate), ExpiredDate)) = DATEPART( Week, GETDATE());
第一种和第二种sql查询结果如下:
0 0
- SQL查询即将合同即将到期的员工
- Windows许可证即将到期
- 计算员工合同到期日期
- 合同电话和现收现付手机的热潮即将到来
- 即将逝去的2004
- 即将质变的玻璃瓶
- 即将逝去的2006
- 即将逝去的2006
- 即将出版的书
- 即将逝去的大学生活
- 即将逝去的2010
- 即将毕业的我
- 即将毕业的我
- 即将逝去的大学生活
- 即将逝去的大一
- 即将开始的大三
- 即将结束的2013
- 即将过去的2013
- Oracle学习(10):其他数据库对象
- 第四章t6
- linux xshell的图形化支持
- FOJ 1320 Ones
- 传智播客:复制多级文件夹
- SQL查询即将合同即将到期的员工
- 关于技术
- Shader学习笔录--Unity3D教程宝典之Shader篇 CG函数
- 10046 trace的跟踪等级
- 第四章t7
- ViewConfiguration.getScaledTouchSlop () 用法
- 堆排序
- Project Euler:Problem 23 Non-abundant sums
- 第五章t1