首页 > 代码库 > 获取每个月的最后一天,利用游标存在新表中

获取每个月的最后一天,利用游标存在新表中

--创建临时表CREATE TABLE #L(ID int IDENTITY(1,1) NOT NULL,Data NVARCHAR(50)primary key(ID)) --@CurrentYear INT 当前年,@CurrentMonth INT 当前月,--@StartYear INT 起始年,@StartMonth INT起始月DECLARE @CurrentYear INT,@CurrentMonth INT,@StartYear INT,@StartMonth INT SET @StartYear=2012 SET @StartMonth=1 SET @CurrentYear=DATEPART(YEAR, GETDATE()) SET @CurrentMonth=DATEPART(MONTH,GETDATE()) DECLARE @dt DATETIME,@dts NVARCHAR(50)   WHILE @StartYear<@CurrentYear+1    BEGIN        IF(@StartYear<>@CurrentYear)            BEGIN                    WHILE @StartMonth<13                    BEGIN                        --获取最后每一月的最后一天                                                  --SELECT @dt=dateadd(day,-1,dateadd(month,1,rtrim(@StartYear)+‘-‘+rtrim(@StartMonth)+‘-01‘))                        --获取最后每一月的最后一天的最后一秒                         SELECT @dt=dateadd(second,-1,dateadd(day,-1,rtrim(@StartYear)+‘-‘+rtrim(@StartMonth)+‘-01‘))                        PRINT @dt                        SET @dts=CONVERT(NVARCHAR(20),@dt,120)                        INSERT INTO #L VALUES(@dts)                        SET @StartMonth=@StartMonth+1                    END            END        ELSE          BEGIN            WHILE @StartMonth<@CurrentMonth+1                BEGIN                    SELECT @dt=dateadd(second,-1,dateadd(day,-1,rtrim(@StartYear)+‘-‘+rtrim(@StartMonth)+‘-01‘))                                         PRINT @dt                    SET @dts=CONVERT(NVARCHAR(20),@dt,120)                    INSERT INTO #L VALUES(@dts)                    SET @StartMonth=@StartMonth+1                END               END                 SET @StartYear=@StartYear+1        SET @StartMonth=1      END   DECLARE @time varchar(50) DECLARE My_Cursor CURSOR --定义游标FOR (SELECT Data FROM #L) --查出需要的集合放到游标中OPEN My_Cursor; --打开游标FETCH NEXT FROM My_Cursor INTO @time; --读取第一行数据WHILE @@FETCH_STATUS = 0    BEGIN        PRINT @time; --打印数据        INSERT INTO datetimess VALUES (@time)                FETCH NEXT FROM My_Cursor INTO @time; --读取下一行数据    ENDCLOSE My_Cursor; --关闭游标DEALLOCATE My_Cursor; --释放游标GO --删除临时表DROP TABLE #L

  

获取每个月的最后一天,利用游标存在新表中