需要保留13个月滚动数据,删除超过13个月的数据,保留完整数月的数据。不应该在保持滚动13个月的同时丢弃部分月份数据。因此,如果我的删除日期不是1,我会保留整个月的数据。需要帮助为此
编写SQL查询答案 0 :(得分:0)
delete
语句在MySQL中看起来像这样(因为问题最初是标记的):
delete from t
where datecol < date_add(date_add(curdate(), interval (1 - day(curdate())) day), interval -13 month);
在SQL Server中,它看起来像:
delete from t
where datecol < dateadd(month, -13,
dateadd(day, 1 - day(getdate()),
cast(getdate() as date)
)
)
当然,在测试之前复制数据。
两点需要注意: