欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

SQL查询即将合同即将到期的员工

发布时间:2024/3/26 数据库 63 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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查询即将合同即将到期的员工的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。