zoukankan      html  css  js  c++  java
  • 使用游标循环添加某一年日期(星期几)数据到数据表

    直接上代码

    DECLARE @BeginTime datetime
    DECLARE My_Cursor CURSOR --定义游标
    FOR (select dateadd(day,x,col) from 
    (
    select cast('2020-3-16 08:00:00' as datetime) as col --从2020年3月16日开始计算
    )a cross join 
    (
    SELECT top 365 b8.i+b7.i + b6.i + b5.i + b4.i +b3.i +b2.i + b1.i + b0.i x
    FROM(SELECT 0 i UNION ALL SELECT 1) b0
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 2) b1
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 4) b2
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 8) b3
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 16) b4
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 32) b5
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 64) b6
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 128) b7
    CROSS JOIN(SELECT 0 i UNION ALL SELECT 256) b8
    order by 1
    )b
    where datepart(dw,dateadd(day,x,col))=5 --5为星期四,2是星期一
    --本代码摘抄自https://blog.csdn.net/weixin_42413952/article/details/88394699
    )
    OPEN My_Cursor; --打开游标
    FETCH NEXT FROM My_Cursor INTO @BeginTime --读取第一行数据
    WHILE @@FETCH_STATUS = 0
    BEGIN
    --PRINT @BeginTime; --打印数据(打印BeginTime)
    set @EndTime = dateadd(hour,9,@BeginTime) --设置结束时间
    insert into [dbo].[mettings]
    SELECT NEWID(),'专用',@BeginTime,@EndTime,NULL,NULL,'d15e0d0d-7fb1-423c-9dd6-6df5ba659eb9',2,NULL,GETDATE(),NULL,'行政楼335会议室',NULL --插入数据
    FETCH NEXT FROM My_Cursor INTO @BeginTime; --读取下一行数据
    END
    CLOSE My_Cursor; --关闭游标
    DEALLOCATE My_Cursor; --释放游标
    GO

  • 相关阅读:
    《构建之法》读书笔记六
    《构建之法》读书笔记五
    《构建之法》读书笔记四
    《构建之法》读书笔记三
    《构建之法》读书笔记二
    《构建之法》读书笔记一
    开发mis系统需要的技术
    java异常处理
    多态
    动手动脑6
  • 原文地址:https://www.cnblogs.com/yangxw2E/p/12467199.html
Copyright © 2011-2022 走看看