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