每个月的一号删除去年这个月份所有的数据的sql语句怎么写

每个月的一号删除去年这个月份所有的数据的sql语句怎么写,第1张

首先你的数据库得有日期的字段,然后通过数据库自带的日期函数来控制删除的日期所有的数据(数据库不同,自带的日期函数不同)

以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 如何实现对表数据进行定期删除、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9827051.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存