数据库增加2024年所有法定节假日并去除调休SQL

需求背景

在很多业务场景中,需要特殊考虑到一些特殊的法定节假日,这些日期在实际对的业务逻辑中需要特殊计算,所以就需要在对应的库表中增加对应的日期记录,在实际操作时进行绕过

实现方式

在数据库中根据国家规定增加对应日期的调休,即周末也可能为工作日的情况,本次操作执行参考2024年所有调休以及法定节假日(包含双休),使用sql插入数据,有需要可以根据以下SQL进行调整

2024放假安排

2024放假安排

插入SQL

以下为插入所有节假日的日期的sql

INSERT
	INTO
	T_HOLIDAY
  (ID,DATE_STR)
  SELECT
	ROW_NUMBER() OVER(ORDER BY DAY_YMD)  AS ID,
	DAY_YMD DATE_STR
FROM
	(
	SELECT
		DAY_YMD,
		CASE
			WHEN DAY_YMD IN
                ('20240101', '20240212',
                 '20240213', '20240214', '20240215', '20240216',
                 '20240404', '20240405', 
                 '20240501', '20240502', '20240503', '20240610',
                 '20240916', '20240917',
                 '20241001', '20241002', '20241003', '20241004',
                 '20241007') THEN
            '3'
			WHEN DAY_YMD IN ('20240204', '20240218', '20240407',
                 '20240428', '20240511', '20240914', '20240929', '20241012') THEN
            '1'
			ELSE
            DAY_TYPE
		END DAY_TYPE
	FROM
		(
		SELECT
			DAY_YMD,
			CASE
				WHEN TRIM(TO_CHAR(TO_DATE(DAY_YMD, 'yyyyMMdd'), 'day')) IN
                        ('星期六', '星期日') THEN
                    '2'
				ELSE
                    '1'
			END DAY_TYPE
		FROM
			(
			SELECT
				TO_CHAR(TO_DATE('20240101', 'yyyyMMdd') + ROWNUM - 1,
                                 'yyyyMMdd') AS DAY_YMD
			FROM
				DUAL
			CONNECT BY
				ROWNUM <=
                             TRUNC(TO_DATE('20241231', 'yyyyMMdd') -
                                   TO_DATE('20240101', 'yyyyMMdd')) + 1)))
	WHERE DAY_TYPE IN (2, 3);
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: networkdays函数是一种在Excel中用于计算两个日期之间工作日数量的函数。它可以用于计算两个日期之间的实际工作日数量,排除掉周末和指定的节假日。如果在节假日期间调休上班,也可以在计算工作日数量时进行调整。 在使用networkdays函数时,需要指定两个日期和一个节假日列表。节假日列表可以是一个单独的单元格范围,也可以是由多个单元格范围组成的数组。如果没有指定节假日列表,则默认排除周六和周日。 当遇到节假日调休情况时,可以将调休的日期添加到节假日列表中。这样,在计算工作日数量时,调休的日期就会被排除在外,不会计算在内。这样可以保证计算的结果是准确的。 使用networkdays函数可以方便地计算节假日调休后的工作日数量,从而可以更好地安排工作和时间。它可以应用于各种场景,比如项目管理、假期计划等,帮助我们更好地利用时间,提高效率。 ### 回答2: Networkdays是一个Excel函数,用于计算两个日期之间的工作日天数。而节假日调休则是指将法定节假日调整到周末,并在周末加班,以保障每休假天数不变的做法。对于这个问题,我们可以这样回答: 网络工作日函数(networkdays)是一种用于计算两个日期之间的工作日天数的Excel函数。而节假日调休是一种管理者为了调整法定节假日与员工工作时间的关系而采取的措施。通常情况下,法定节假日是固定的,但为了保障员工的休假权益,当某一法定节假日恰好与周末相连时,会将这个法定节假日调整到周末,从而延长员工的休假时间。此外,在调整后的周末,员工可能需要加班以弥补因调休而延长的休假时间。这样,可以保证每员工享有的休假天数不变。networkdays函数在计算两个日期之间的工作日天数时,可以排除掉调休后的周末,从而得到准确的工作日数。因此,networkdays函数在处理节假日调休后的工作日计算中非常有用。总之,networkdays函数和节假日调休都是为了确保员工的工作时间和休假时间能够得到合理安排的工具和措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值