在项目开发过程中,我们经常需要查询某些即将到期的资源信息,并给相关的人通过邮件等形式进行提醒。这类需求非常普遍,今天写了一个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查询即将合同即将到期的员工相关推荐

  1. 捷信达温泉管理软件员工卡SQL查询

    捷信达温泉管理软件员工卡SQL查询 select * from snkey where v_name2 like '%员工%' 网名:浩秦; 邮箱:root#landv.pw; 只要我能控制一個國家的 ...

  2. 编写一个 SQL 查询,找出每个部门工资最高的员工。

    Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id.+----+-------+--------+--------------+ | Id ...

  3. 面试官:编写一个 SQL 查询,找出每个部门工资第二高的员工

    今天我们来看看大数据开发中row_number函数. 作为一名程序员,求职面试时时常会遇到需要编写一些基础的sql,编写sql这样做的目的主要是考验求职者的逻辑思维及编写sql基础能力.而row_nu ...

  4. sql查询每个部门前三高工资的员工

    Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId. +----+-------+--------+----- ...

  5. 2022-12-05:部门工资前三高的所有员工。编写一个SQL查询找出每个部门中收入前三高的员工 。 +------------+----------+--------+ | Department |

    2022-12-05:部门工资前三高的所有员工.编写一个SQL查询找出每个部门中收入前三高的员工 . ±-----------±---------±-------+ | Department | Em ...

  6. 读书笔记:SQL 查询中的SQL*Plus 替换变量(DEFINE变量)和参数

    本文为"SQL*Plus 替换变量 - 在 SQL 查询中定义变量和参数"的读书笔记. 此文主要是讲替换变量,也称为DEFINE变量,但也涉及了绑定变量和SQL Plus系统变量. ...

  7. SQL查询入门(下篇)

    引言 在前两篇文章中,对于单表查询和多表查询的概念做出了详细的介绍,在本篇文章中会主要介绍聚合函数的使用和数据的分组. 简介 简单的说,聚合函数是按照一定的规则将多行(Row)数据汇总成一行的函数.对 ...

  8. SQL查询入门(中篇)

    引言 在前篇文章中(SQL查询入门(上篇),我对数据库查询的基本概念以及单表查询做了详细的解释,本篇文章中,主要说明SQL中的各种连接以及使用范围,以及更进一步的解释关系代数法和关系演算法对在同一条查 ...

  9. SQL查询入门(上篇)

    SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句.但对于大多数开发者来说,使用SQL查询数据库并没有一个抽象的过程和一个合理的步骤,这很可能会使在写一些特定的SQL ...

最新文章

  1. Java渐变进度条_Android ProgressBar自定义图片进度,自定义渐变色进度条
  2. html页面内容改变,但是网页内容不变
  3. 分布式缓存DistributedCache的使用
  4. Consul负载均衡策略
  5. 计算机辅助教学( ),27075 计算机辅助教学
  6. 【mysql】安装 mysql 5.7 完成后,默认密码是啥?怎么查看默认密码?
  7. Android 4.0新增Space及GridLayout初谈
  8. SpringMVC接受JSON参数详解及常见错误总结我改
  9. vert.x 分布式锁_使用Vert.x进行响应式开发
  10. C#开发笔记之20-如何用C#深克隆一个对象(优雅方案)?
  11. (转)Uncaught TypeError: Cannot set property 'innerHTML' of null
  12. 【STC15】使用PCA0和PCA1做的模拟串口
  13. cc直播怎么显示服务器,CC直播像素杯四大服务器严阵以待 MC精彩赛事即刻开启...
  14. 几何画板 html5,几何画板菜单栏
  15. windows删除文件时需要管理员权限的方法
  16. 数仓及其维度(分层)建模(ODS DWD DWS DWT ADS)
  17. cpu和内存占用过高,但是任务管理器中的进程占用的内存和cpu看不出来
  18. Arithmetic(线段树维护历史版本和)
  19. 暖心的坚果 Pro 3发布会,Smartisan OS亮点颇多
  20. Hive远程连接设置用户名和密码

热门文章

  1. 【微信支付】(亲测可用)对接app微信支付V2版本 后端代码示例
  2. php中autofocus,快速解决element的autofocus失效问题
  3. 微信小程序快速转支付宝小程序(antmove)
  4. mysql配置所有人可连接_mysql配置允许外界连接
  5. openjudge 1.6.15 阶乘和
  6. 在论文中生成目录和参考文献
  7. 炼厂322℃工艺气余热换热器设计
  8. c语言基础学习笔记(三):条件判断语句if-else嵌套和switch-case语句
  9. 第六章 网络编程-SOCKET开发
  10. 二进制除法移位相减_verilog移位相减实现除法(转载)