1. 删除指定日期后的记录 sql语句
删除指定日期后的记录 SQL语句:
以删除2004年8月4日到2006年10月25日的数据为例:
delete from tb where columnname between '2004/8/5' and '2006/10/25'
如果记录日期的字段为字符串类型的
delete from T1 where T1.dateCol='2012-11-06'
如果记录日期的字段为日期类型的
delete from T1 where to_char(T1.dateCol,'yyyy-mm-dd')='2012-11-06'
如果记录日期的长度比较长,那就截取字符串,使用substr函数。
其实SQL Server有个很好的功能,大家都忽略了,就是他强大的事务处理功能。楼主可以写一个删除3个月前数据的存储过程,然后开启SQL Server代理,里面有个作业的,可以添加一个定期执行的作业,只要每天定期在空闲的时候执行就可以了。当然了,触发器也是可以实现,但是触发器有个弊端,就是必须有数据插入、修改或者删除才能执行。
3. sql语句如何删除一段时间内的记录
1、使用BETWEEN关键字根据时间字段删除一定时间内的记录
DELETE FROM 表名 WHERE 时间字段 BETWEEN 开始时间 AND 结束时间
示例:
DELETE FROM tb WHERE CreateTime BETWEEN '2017-01-01 00:00:00' AND '2017-02-01 00:00:00'
--删除tb表中2017年1月1日到2017年2月1日的数据
2、使用时间字段比较大小来确定删除范围
--语法:
DELETE FROM 表名 WHERE 时间字段>=开始时间 AND 时间字段<=结束时间
示例:
DELETE FROM tb WHERE CreateTime>='2017-01-01 00:00:00' AND CreateTime<='2017-02-01 00:00:00'
3、结构化查询语言(Structured
Query
Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;
4、sql
语句就是对数据库进行操作的一种语言。
5、记录筛选
sql="select
*
from
数据表
where字段名=字段值
order
by字段名[desc]"(按某个字段值降序排列。默认升序ASC)
sql="select
*
from
数据表
where字段名like
'%字段值%'
order
by
字段名
[desc]"
sql="select
top
10
*
from
数据表
where字段名=字段值
order
by
字段名
[desc]"
sql="select
top
10
*
from
数据表
order
by
字段名
[desc]"
sql="select
*
from
数据表
where字段名in
('值1','值2','值3')"
sql="select
*
from
数据表
where字段名between
值1
and
值2"
4. 如何删除SQl Server里过期的备份集
--删除过期的备份文件,每天两次
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:\Weldon\'
set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),' ',''),':',''),8)
set @str=@dir+'fullbak'+@filename+'*.bak'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str