php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 401|回复: 0

每隔2周休息1天工厂日历生成

[复制链接]

3138

主题

3148

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
7946
贡献
0
注册时间
2021-4-14
最后登录
2024-11-21
在线时间
763 小时
QQ
发表于 2022-11-26 06:49:57 | 显示全部楼层 |阅读模式
[mw_shl_code=applescript,true]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[/mw_shl_code]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )

GMT+8, 2024-11-22 02:55 , Processed in 0.775652 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

快速回复 返回顶部 返回列表