2019年日历假期添加

2019年日历假期添加

考勤统计中,一般都需要考虑到节假日信息和调休的日期,每年12月份国家会颁布新一年的节假日信息,我们可根据节假日信息,维护成相关的日期表,用于日期维护。本文介绍下相关实现方式。

日期表的创建如下:

    CREATE TABLE [dbo].[HR_WorkDayList](
        [WorkDate] [varchar](10) NOT NULL,
        [DateType] [nvarchar](10) NULL,
        [IsWorkDay] [bit] NULL,
        [Remark] [nvarchar](20) NULL,
     CONSTRAINT [PK_HR_WorkDayList] PRIMARY KEY CLUSTERED
    (
        [WorkDate] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

可根据系统表插入每年的日期列表,SQL脚本如下(可以一次性生成几年内的日期列表,在系统设计中,我这里生成了2018年-2028年的日期数据):

    INSERT INTO [dbo].[HR_WorkDayList](WorkDate,DateType,IsWorkDay,Remark) select WorkDate,DateType,IsWorkDay,Remark from
     
    (SELECT convert(char(10), DATEADD(dd, number, ‘2023-08-11’),120) AS WorkDate,
    datename(weekday,convert(char(10), DATEADD(dd, number, 2023-08-11),120)) as DateType,
    case when datename(weekday,convert(char(10), DATEADD(dd, number, 2023-08-11),120))<>’星期六’ and datename(weekday,convert(char(10), DATEADD(dd, number, 2023-08-11),120))<>’星期日’ then 1 else 0 end as IsWorkDay,
    ” as Remark
    FROM   master.dbo.spt_values  as spt
    WHERE   type = ‘p’ AND number <= DATEDIFF(DAY, ‘2023-08-11’, ‘2028-12-31’)) as SourceTable

根据每年国家发布的节假日信息,更新相关日期。采用Excel表格,组合成SQL脚本,然后更新表数据 。下表是我整理的2019年的节假日信息。
日期           备注     是否上班     SQL脚本更新
2018-12-29           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2018-12-29′
2018-12-30           元旦     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’元旦’WHERE WorkDate=’2018-12-30′
2018-12-31           元旦     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’元旦’WHERE WorkDate=’2018-12-31′
2019-01-01           元旦     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’元旦’WHERE WorkDate=’2019-01-01′
2019-02-03           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-02-03′
2019-02-03           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-02-03′
2019-02-04           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-04′
2019-02-05           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-05′
2019-02-06           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-06′
2019-02-07           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-07′
2019-02-08           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-08′
2019-02-09           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-09′
2019-02-10           春节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’春节’WHERE WorkDate=’2019-02-10′
2019-04-05           清明节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’清明节’WHERE WorkDate=’2019-04-05′
2019-04-06           清明节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’清明节’WHERE WorkDate=’2019-04-06′
2019-04-07           清明节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’清明节’WHERE WorkDate=’2019-04-07′
2019-05-01           劳动节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’劳动节’WHERE WorkDate=’2019-05-01′
2019-06-07           端午节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’端午节’WHERE WorkDate=’2019-06-07′
2019-06-08           端午节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’端午节’WHERE WorkDate=’2019-06-08′
2019-06-09           端午节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’端午节’WHERE WorkDate=’2019-06-09′
2019-09-13           中秋节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’中秋节’WHERE WorkDate=’2019-09-13′
2019-09-14           中秋节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’中秋节’WHERE WorkDate=’2019-09-14′
2019-09-15           中秋节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’中秋节’WHERE WorkDate=’2019-09-15′
2019-09-29           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-09-29′
2019-10-12           上班     1     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =1 ,[Remark] =’上班’WHERE WorkDate=’2019-10-12′
2019-10-01           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-01′
2019-10-02           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-02′
2019-10-03           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-03′
2019-10-04           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-04′
2019-10-05           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-05′
2019-10-06           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-06′
2019-10-07           国庆节     0     UPDATE [dbo].[HR_WorkDayList] SET [IsWorkDay] =0 ,[Remark] =’国庆节’WHERE WorkDate=’2019-10-07′

在此基础上,我们可以做月工作日天数统计,年工作日天数统计,以及年休息日统计,还有其他统计等。同时我们可以根据业务需要,用任何一门语言实现相关的业务需求。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119666.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python读取txt文本(python读取excel数据)

    #coding:utf8dict_data={}withopen(‘dict_2data.txt’,’r’)asdf:forkvin[d.strip().split(”)fordindf]:printkv[0].decode(‘utf8’)dict_data[kv[0].decode(‘utf8’)]=kv[1]printdict_dataforkin…

    2022年4月11日
    142
  • 使用Python暴力激活成功教程密码

    使用Python暴力激活成功教程密码由于业务需求,今天项目对接了百度云智能的风控系统,注册和登陆保护,想来测试一下性能,用python写了一个脚本,暴力激活成功教程密码,看看会不会触发风控一、首先在本地新建了一个数据库,保存已经试错过的密码CREATETABLE`test`.`pwd`(`id`int(10)NOTNULLAUTO_INCREMENT,`passwod`varchar(20)CHARACTERSETutf8COLLATEutf8_general_ciNOTNULLDEFAULT’…

    2022年8月22日
    6
  • 在WIN7系统的笔记本上建立WIFI热点「建议收藏」

    在WIN7系统的笔记本上建立WIFI热点

    2022年1月21日
    81
  • java 拉姆达表达式_一看就懂之java8新特性函数式编程:我是拉姆达表达式lambda…

    java 拉姆达表达式_一看就懂之java8新特性函数式编程:我是拉姆达表达式lambda…我们都知道,java8之后增加了很多新特性,大大的简化了代码的编写、阅读的负担。先发个牢骚:今天up主根据自己的理解跟大家说说新特性之一的lambdaexpress(拉姆达表达式),每当看到新的语法改动,内心我都是拒绝的。因为又要学习、又要适应、又要改变真烦人,可是没办法现在这几乎是所有大厂必须的操作。总不能看不懂人家写的代码吧,做IT行业尤其是软件工程师必须要保证自己的知识及时更新、知识面不…

    2022年9月19日
    0
  • python语言介绍

    python语言介绍Python是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。发展历程自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。Python的创始人为GuidovanRossum。1989年圣诞节…

    2022年5月8日
    34
  • Kong网关初探_API网关

    Kong网关初探_API网关安装Kong安装文档Kong开源版不提供dashboard支持,只有Kong企业版才有该功能。但有第三方控制台Konga同样可以友好地管理KongAdminAPI对象,快速安装如下:dockerrun-d-p1337:1337\–namekonga\–network=kong-net\-eDB_ADAPTER=postgres\-eDB_HOST=kong-database\-eDB_PORT=5432\-eDB_USER=kong\

    2022年9月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号