首先你的数据库得有日期的字段,然后通过数据库自带的日期函数来控制删除的日期所有的数据(数据库不同,自带的日期函数不同)
以SQL Server 为例:
delete from [表名] where 日期字段 >= convert(varchar(4),year(getdate())-1)+'-'+convert(varchar(2),month(getdate()))+'-1' and test< convert(varchar(4),year(getdate())-1)+'-'+convert(varchar(2),month(getdate())+1)+'-01'
以Oracle为例:
delete from [表名] where 日期字段 >= convert(varchar(4),to_char(sysdate,'yyyy')-1)+'-'+convert(varchar(2),to_char(sysdate,'mm'))+'-1' and test< convert(varchar(4),to_char(sysdate,'yyyy')-1)+'-'+convert(varchar(2),to_char(sysdate,'mm')+1)+'-01'
以上语句经过测试
//1你创建一个insert触发器,每当数据插入的时候判断一下是不是有你要删除的数据。
//2你还可以创建一个存储过程,然后再做一个作业任务,让 sql server 每多长时间删除一次。
下面给出的是第一种办法的insert触发器,不过这样每次insert 他都会执行一次,对数据库有点耗资源
create TRIGGER Trigger1
ON dbousers
FOR insert
AS
Begin
declare @mintime datetime,@maxtime datetime
select @mintime =min(时间),@maxtime =max(时间) from Alarm
delete from Alarm where DATEDIFF(d,@mintime ,@maxtime )>=7
End
以上就是关于每个月的一号删除去年这个月份所有的数据的sql语句怎么写全部的内容,包括:每个月的一号删除去年这个月份所有的数据的sql语句怎么写、sql server 2005 如何实现对表数据进行定期删除、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)