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

--创建临时表
CREATE TABLE #L(
ID int IDENTITY(1,1) NOT NULL,
Data NVARCHAR(50)
primary key(ID)
)

[email protected] INT 当前年,@CurrentMonth INT 当前月,
[email protected] 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 @[email protected]+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 @[email protected]+1
                END
          END
        SET @[email protected]+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; --读取下一行数据
    END
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO

--删除临时表
DROP TABLE #L

  

时间: 2024-10-27 10:44:05

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

【SQL Server】利用游标将学生表中的成绩转化为绩点

软件工程综合实践第一次作业 代码来源:班上同学的数据库大作业 alter table sc add GPA float; --加入绩点列 alter table sc add number int identity(1,1);--将表按原始位置顺序编号(可加可不加) alter table sc add primary key(number) declare score_visit cursor --声明一个游标 for select score from sc open score_visit

Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)

应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create or replace type splitTable is table of varchar2(100); 2.创建函数fn_splitString(功能是将字符串分割成多条记录)--测试语句select * from table(fn_splitString('ernanyinv','nan'))

linux MySQL 如何复制表数据或表结构到新表中

经常操作xshell 发现,复制同样的功能,需要复制数据表的结构和数据,linux MySQL 如何复制表数据或表结构到新表中? 1.MySQL复制表结构及数据到新表的方法 CREATE TABLE new_table SELECT * FROM old_table; 2,只复制表结构到新表 CREATE TABLE new_table like old_table; 注意:还一种方法,但是不复制列属性和索引 CREATE TABLE new_table SELECT * FROM old_ta

sql 如何把查询得到的结果如何放入一个新表中

表已经存在:insert into 表名 (列名1... 列名n) select 列名1....列名n from 表 where 条件表不存在:oraclecreate table 新表明 as select 列名1....列名n from 表 where 条件sqlserverselect 列名1....列名n into 新表名 记录一下呵呵

excel 利用正则表达式匹配工作表中的数据

sheet1中A列放需要匹配的数据 sheet2中A列放正则表达式,可以是多个,但至少一个 匹配到了则在sheet1中C列对应行显示相关标记内容,比如本案例中显示1111 Sub Test() atr = Worksheets("Sheet1").Range("a65536").End(xlUp).Row btr = Worksheets("Sheet2").Range("a65536").End(xlUp).Row a =

利用sql 存储过程把表中内容自动生成insert语句

选中所在数据库 执行创建存储过程的sql CREATE proc [dbo].[spGenInsertSQL] (@tablename nvarchar(256),@sqlwhere varchar(4000)) as begin declare @sql varchar(max) declare @sqlValues varchar(max) set @sql =' (' set @sqlValues = 'values (''+' select @sqlValues = @sqlValues

对考勤原始数据处理,插入新表中整理数据

ALTER  PROCEDURE [dbo].[Hr_addNewMonth]asBEGIN    INSERT INTO [Hr_1]           ([日期时间],[姓名]           ,[考勤号码])   select distinct CONVERT(char(10),日期时间,120) as atime,姓名,考勤号码 from Hr a   where (select COUNT(*) from [Hr_1] b where b.考勤号码 = a.考勤号码 and b.

新建表需要原表的数据,mysql 如何把查询到的结果插入到新表中

1. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO  目标表  SELECT  * FROM  来源表 ; 例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现: INSERT INTO  newArticles  SELECT  * FROM  articles ; 2. 如果只希望导入指定字段,可以用这种方法: INSERT INTO  目标表 (字段1, 字段2, ...)  SELE

如何获取一个元素没有在style和样式表中设置的样式的值?

场景:需要判断一个元素是否是固定定位,但是它的position属性没有设置在该元素的标签style中,如何去判断它的position值为fixed? 措施:通过 window.getComputedStyle(element, [pseudoElt])(pseudoElt可选,表示指定节点的伪元素(:before.:after.:first-line.:first-letter等))的style来判断. 原文地址:https://www.cnblogs.com/juicy-initial/p/1