如何删除MS SQL数据库中最早的一周(期间)?

如何删除MS SQL数据库中最早的一周(期间)?,sql,sql-server,vba,sql-server-2008r2-express,Sql,Sql Server,Vba,Sql Server 2008r2 Express,MS SQL 2008R2 Express,我有一个数据库-一个带行的表。当db大小变成10gb时,我需要清理这个表中最老的一周(我不知道日期)。你能帮我写剧本吗?谢谢 UPD1。 有DateAndTime列,所以我在VBA中进行如下查询: strSQL = "SELECT DateAndTime ,TagName ,Val ,SetPoint ,Limit_H

MS SQL 2008R2 Express,我有一个数据库-一个带行的表。当db大小变成10gb时,我需要清理这个表中最老的一周(我不知道日期)。你能帮我写剧本吗?谢谢

UPD1。 有DateAndTime列,所以我在VBA中进行如下查询:

strSQL = "SELECT DateAndTime
                ,TagName
                ,Val
                ,SetPoint
                ,Limit_H
                ,Limit_L
                ,Result 
          FROM dbo.Statistic 
          WHERE DateAndTime  BETWEEN CAST('" & TimeBegin & "' AS datetime) AND CAST( '" & TimeEnd & " ' AS datetime) 
          Order By DateAndTime desc , (CASE WHEN ISNUMERIC(TagName)=1 THEN CAST(CAST(TagName AS float) AS INT)END ) desc"
这个呢-

DELETE YOUR_TABLE
WHERE DATE_COL BETWEEN (SELECT MIN(DATE) FROM YOUR_TABLE) AND (SELECT MIN(DATE) FROM YOUR_TABLE) + 7

正如Ankit所建议的,使用日期的min()并添加一周

delete 
from dbo.statistic
where dateandtime between min(dateandtime) 
                    and dateadd(week, 1, min(dateandtime))

如何识别“最老的一周”?您的意思是这是第一个加载的数据,并且您的表中没有任何时间戳?仅按元数据删除?是否有标识列?或者它是以任何方式订购的?你能发布样品数据吗,请?“我不知道日期”,关于什么?您的表中没有时间戳列?
delete from
是正确的语法,您需要
dateadd()
用于SQL Server我认为
delete
也会处理同样的问题。虽然我还没有尝试过,但这种语法应该可以使用。@JohnHC它可以在我的MSSQL数据库上使用:SELECT GETDATE()-7