DECLARE @Work_LegalHoliday TABLE
(
ID VARCHAR(36) ,
DateTimeName DATETIME ,
WeekName VARCHAR(50) ,
IsLegalHoliday INT ,
Remark NVARCHAR(MAX)
)
DECLARE @Year INT
SET @Year = 2021
--
;
WITH tbSource
AS ( SELECT CAST(RTRIM(@Year) + '-01-01' AS DATETIME) DateTimeName
UNION ALL
SELECT DATEADD(dd, 1, DateTimeName)
FROM tbSource
WHERE DATEPART(yy, DATEADD(dd, 1, DateTimeName)) = @Year
OR DATEPART(yy, DATEADD(dd, 1, DateTimeName)) = ( @Year +1 )
)
INSERT @Work_LegalHoliday
SELECT NEWID() ,
CONVERT(VARCHAR(10), DateTimeName, 121) ,
DATENAME(WEEKDAY, DateTimeName) ,
0 ,--2周休息1天标记
'' AS Remark
FROM tbSource a
WHERE DATEPART(WEEKDAY, a.DateTimeName) = 1
AND DATEPART(wk, a.DateTimeName) % 2 = 0
EXCEPT
SELECT NEWID() ,
CONVERT(VARCHAR(10), DateTimeName, 121) ,
DATENAME(WEEKDAY, DateTimeName) ,
0 ,
'' AS Remark
FROM @Work_LegalHoliday
OPTION ( MAXRECURSION 0 )
SELECT ID,DateTimeName,WeekName,IsLegalHoliday,Remark
FROM @Work_LegalHoliday
ORDER BY DateTimeName
没有合适的资源?快使用搜索试试~ 我知道了~
每隔两周休息一天的工厂日历可以使用以下描述生成: 创建一个空的工厂日历表。 获取开始日期,通常是当前日期。 循环遍历每一天,从开始日期开始。 判断当前日期是否是休息日。如果是,则在工厂日历表中将该日期标记为休息日。 增加一天到当前日期。 检查当前日期是否是第14天。如果是,则增加一天作为休息日,并将计数器重置为0;否则,继续下一天的循环。 重复步骤4至步骤6,直到达到指定的结束日期或满足特定的条件。 通过以上步骤,可以生成一个每隔两周休息一天的工厂日历,其中休息日会被标记出来。这个日历可以用于工厂的排产计划和调度,以确保员工有规律地休息,同时保证生产线的正常运转。 每隔两周休息一天的工厂日历可以使用以下描述生成: 创建一个空的工厂日历表。 获取开始日期,通常是当前日期。 循环遍历每一天,从开始日期开始。 判断当前日期是否是休息日。如果是,则在工厂日历表中将该日期标记为休息日。 增加一天到当前日期。 检查当前日期是否是第14天。如果是,则增加一天作为休息日,并将计数器重置为0;否则,继续下一天的循环。 重复步骤4至步骤6,直到达到指定的结束日期或满足特定的条件。 通过以上步骤,可以生
资源推荐
资源详情
资源评论
收起资源包目录
每隔2周休息1天工厂日历生成.zip (1个子文件)
每隔2周休息1天工厂日历生成
2周休1天生产日历.sql 1KB
共 1 条
- 1
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功