SQLserver删除上月1号前的数据 并且将每天的最后一条数据插入到另外一张表里面
答案:1 悬赏:50 手机版
解决时间 2021-11-24 07:11
- 提问者网友:做自己de王妃
- 2021-11-24 01:53
SQLserver删除上月1号前的数据 并且将每天的最后一条数据插入到另外一张表里面
最佳答案
- 五星知识达人网友:山君与见山
- 2021-11-24 02:10
建两个作业就可以了,作业内用sql语句。 SQL Server自带的有这个功能。
追问我是问数据库语句怎么写,我知道可以放在触发器和作业里面我是问数据库语句怎么写,我知道可以放在触发器和作业里面追答--删除上月1号前的数据
declare @lastTime datetime--声明变量
select @lastTime=convert(varchar(10),dateadd(month,-2,getdate()),120)--计算上月1号前的时间
delete from AttemperPoint where YEAR(time)<=YEAR(@lastTime) and MONTH(time)<=MONTH(@lastTime)--判断年月相等,即为上月1号前的数据
--更新每天最后一条数据到另外一张表
declare @yestoday datetime
set @yestoday=DATEADD(DAY,-1,GETDATE())
insert into table1(字段1,字段2,字段3) select top 1 字段1,字段2,字段3 from temp1 where YEAR(time)=YEAR(@yestoday) and MONTH(time)=MONTH(@yestoday) and DAY(time)=DAY(@yestoday) order by Id desc追问这个time是什么参数,如果是内置的话是报错的追答time是你表中的字段,datetime类型的追问如果用linQ怎么写
追问我是问数据库语句怎么写,我知道可以放在触发器和作业里面我是问数据库语句怎么写,我知道可以放在触发器和作业里面追答--删除上月1号前的数据
declare @lastTime datetime--声明变量
select @lastTime=convert(varchar(10),dateadd(month,-2,getdate()),120)--计算上月1号前的时间
delete from AttemperPoint where YEAR(time)<=YEAR(@lastTime) and MONTH(time)<=MONTH(@lastTime)--判断年月相等,即为上月1号前的数据
--更新每天最后一条数据到另外一张表
declare @yestoday datetime
set @yestoday=DATEADD(DAY,-1,GETDATE())
insert into table1(字段1,字段2,字段3) select top 1 字段1,字段2,字段3 from temp1 where YEAR(time)=YEAR(@yestoday) and MONTH(time)=MONTH(@yestoday) and DAY(time)=DAY(@yestoday) order by Id desc追问这个time是什么参数,如果是内置的话是报错的追答time是你表中的字段,datetime类型的追问如果用linQ怎么写
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯