【发布时间】:2017-10-22 12:33:54
【问题描述】:
需要保留滚动13个月的数据,删除超过13个月的数据,保留完整的月数据。在保持滚动 13 个月的同时不应删除部分月份数据。因此,如果我的删除日期不是 1,我将保留整个月份的数据。需要帮助为此编写 SQL 查询
【问题讨论】:
-
您需要提供代表您的数据的示例代码,以及您的编码尝试。
标签: sql sql-server
需要保留滚动13个月的数据,删除超过13个月的数据,保留完整的月数据。在保持滚动 13 个月的同时不应删除部分月份数据。因此,如果我的删除日期不是 1,我将保留整个月份的数据。需要帮助为此编写 SQL 查询
【问题讨论】:
标签: sql sql-server
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)
)
)
当然,在测试之前复制你的数据。
注意两点:
【讨论】: