Excel 2010 SQL应用079 提取合同即将到期的员工及最迟续订期限

源数据表

序号姓名合同签订日期
1辛劭钧2010/1/14
2林庆荣2009/10/19
3许亚瑾2010/1/14
4施佳翔2008/12/20
5钟皓宇2010/7/10
6李志仁2008/3/5
7杨婉伶2008/2/5
8林艺芳2008/4/6
9陈俐宁2009/11/15
10李冠霆2009/12/8
11吕柏贤2010/6/22
12杜金佳2010/1/14
13林映君2009/11/15
14陈柏勋2009/12/8
15陈怡瑄2010/1/14
16叶羽恬2009/9/15
17王介廷2009/9/25
18穆彦浚2008/4/8
19洪亚菁2010/3/5
20吴宗隆2008/3/5
21余思宜2010/7/20
22邱建霖2008/1/5
23黄译庆2010/3/5
24周逸宣2010/6/22
25梁殷铨2009/10/31
26李晏庭2009/10/18
27曹贤德2009/11/15
28张政2010/7/2
29杨智玮2009/10/20

  某公司实行3年合同制,同时对合同到期前的员工实施合同期综合评价,以决定员晋升、加薪、续签合同乃至解除合同。为准备评价的相关资料,人力资源部需要提前30天将合同即将到期员工清单分发给各部门负责人,并且需要在合同到期前决定是否续签。由于合同到期日可能为双休日.因而需要确定合同到期前最后一个工作日为最迟续订期限。员工签订合同时间表如图所示,根据员工签订合同时间表返回合同到期前一个月的员工清单及最迟续订期限。

解决方案

SELECT
    序号,
    姓名,
    DATEADD('yyyy',3,合同签订日期)-FORMAT(WEEKDAY(DATEADD('yyyy',3,合同签订日期),2)-5,'0;\0') AS 合同续订日期
FROM [sheet1$]
WHERE DATEDIFF('d',DATE(),DATEADD('yyyy',3,合同签订日期))
      BETWEEN 0 AND 30

    利用DATEADD函数编写以下语句,可以获得员工合同到期日:

DATEADD('yyyy',3,合同签订日期)

    根据该合同到期日,利用DATEDIFF函数可以求得指定日期距合同到期日的天数,保留该天数为0~30的记录,即可求得本例要求的合同即将到期的员工。
    由于星期六和星期日为休息日,故无法进行合同签订工作。为求得最迟续订期限,本例还应将合同到期日为星期六和星期日的日期转换成星期五的日期,该日期即为最迟续订期限.

(WEEKDAY(DATEADD('yyyy',3,合同签订日期),2)

    本例的实现需要将星期六和星期日变更为前一个工作日(即星期五)。因而需要将合同到期日为星期六和星期日的日期分别提前1天和2天,即减去1和2,其余日期不做变化,即减
去0。因而,利用FORMAT函数将上述星期天数结果中的星期六和星期日保留为1和2,其余保留为0。即利用以下语句得到合同续订日期:    

DATEADD('yyyy',3,合同签订日期)-FORMAT(WEEKDAY(DATEADD('yyyy',3,合同签订日期),2)-5,'0;\0')

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值