• 简易的日历表制作


    分享一个简易日历制作。只需要用很简单的语句,就可以生成一个日历表。应用场景可以结合销售日历啊,或者考勤表什么的~还有会有好处

    1 创建测试表

    CREATE TABLE TestDate
    (
        ID INT IDENTITY PRIMARY KEY,
        Date DATE,  --日期
        WeekDay NVARCHAR(50), --星期几
        IsWeekend BIT, --是否周末
        IsHoliday BIT DEFAULT 0, --是否假日
        IsDayOff AS  IsWeekend | IsHoliday, --是否休息日
        Remark NVARCHAR(200) --备注
    )

    2 生成今年2018年的日历表

    ;WITH CTE AS
    (
        SELECT CONVERT(DATE,'2018-01-01') AS Date,
                CASE DATEPART(WEEKDAY,'2018-01-01') WHEN 1 THEN 1 WHEN 7 THEN 1 ELSE 0 END AS IsWeekend  
        UNION ALL
        SELECT DATEADD(dd,1,CTE.Date),
                CASE DATEPART(WEEKDAY,DATEADD(dd,1,CTE.Date)) WHEN 1 THEN 1 WHEN 7 THEN 1 ELSE 0 END AS IsWeekend
            FROM CTE          
        WHERE CTE.Date < '2018-12-31'
    )
    INSERT INTO dbo.TestDate
    (
        Date,
        IsWeekend,
        WeekDay
    )
    SELECT CTE.Date,CTE.IsWeekend,FORMAT(CTE.Date,'dddd')
        FROM CTE
        OPTION (MAXRECURSION 0)

    如果需要更新个假日,可以酱汁

    UPDATE dbo.TestDate SET IsHoliday = 1,Remark = '元旦' WHERE FORMAT(Date,'MM-dd') = '01-01'   --当初始化不止一年的时候就可以这样玩了~

    然后效果

    ID          Date       WeekDay                                            IsWeekend IsHoliday IsDayOff Remark
    ----------- ---------- -------------------------------------------------- --------- --------- -------- -------------
    1           2018-01-01 星期一                                                0         1         1        元旦
    2           2018-01-02 星期二                                                0         0         0        NULL
    3           2018-01-03 星期三                                                0         0         0        NULL
    4           2018-01-04 星期四                                                0         0         0        NULL
    5           2018-01-05 星期五                                                0         0         0        NULL
    6           2018-01-06 星期六                                                1         0         1        NULL
    7           2018-01-07 星期日                                                1         0         1        NULL
    8           2018-01-08 星期一                                                0         0         0        NULL
    9           2018-01-09 星期二                                                0         0         0        NULL
    10          2018-01-10 星期三                                                0         0         0        NULL
    11          2018-01-11 星期四                                                0         0         0        NULL
    12          2018-01-12 星期五                                                0         0         0        NULL
    13          2018-01-13 星期六                                                1         0         1        NULL
    14          2018-01-14 星期日                                                1         0         1        NULL
    15          2018-01-15 星期一                                                0         0         0        NULL
    16          2018-01-16 星期二                                                0         0         0        NULL
    17          2018-01-17 星期三                                                0         0         0        NULL
    18          2018-01-18 星期四                                                0         0         0        NULL
    19          2018-01-19 星期五                                                0         0         0        NULL
    20          2018-01-20 星期六                                                1         0         1        NULL
    21          2018-01-21 星期日                                                1         0         1        NULL
    22          2018-01-22 星期一                                                0         0         0        NULL
    

    如果要加什么辅助字段~那么按需添加就好了~

    PS:主要是Format这个函数在某些特定的情况是非常好用哒~

  • 相关阅读:
    统一回复《怎么学JavaScript?》
    nodejs配置简单HTTP服务器
    web跨域解决方案
    JavaScript 调试小技巧
    我从编程总结的 22 个经验
    Sublime Text 3103 Crack 破解 注册码(亲测有效)
    mstsc 远程序桌面登录的 c#开发
    突然顿悟的Javascript中的this
    解决Electron加载带jquery的项目报错问题
    ES6+ 开发 React 组件
  • 原文地址:https://www.cnblogs.com/Gin-23333/p/8423474.html
Copyright © 2020-2023  润新知