我试图搜索这个类似问题的问题历史,但找不到任何与我想要做的事情相匹配的东西。希望有人可以提供帮助。我有一个表,其中包含一些存档数据,其时间戳可追溯到 1900 年 1 月 1 日。不知道那个日期是怎么来的,我认为它可能是基于一些旧应用程序的时间戳。无论如何,我的公司需要在这些存档表中保留的数据是好的、有效的数据。然而,为了定期清理数据,我们希望能够清除日期早于 60 天的数据,但不接触具有 1900 年旧时间戳的数据。有没有办法可以使用介于语法来完成这个?我在想我可以做这样的事情,但可能过于简单化了:
--example: --Query 查找超过 60 天的记录并转储到临时表中
select transid into #cdm_delete_table from cdmtrans where exporttime < getdate()-60
--然后将这些记录保存在我的临时表中,从主表中执行删除。--但这会像您期望的那样摆脱所有记录
delete from cdmtrans where transid in (select transid from #cdm_delete_table)
--但是,我想根据日期范围进行删除。-- 早于 60 天,但大于 1900 年 1 月 1 日。这行得通吗??
delete FROM cdmtrans WHERE transid BETWEEN '01/01/1901' and getdate()-60
或者
delete from cdmtrans where transid in
(select transid from #cdm_delete_table WHERE transid BETWEEN '01/01/1901' and getdate()-60)
这就是我迷路的地方。如果我走在正确的轨道上,希望有人可以为我澄清。提前谢谢。