我有一個表,基本上存儲某些數據集的修訂(即如果你喜歡,通過時間編輯回來)。修訂日期被無意識地存儲爲名爲revision
的datetime
字段。基於分層日期時間的刪除T-SQL
每天都會在午夜時分進行新的修訂。
如果該表被留下來填充,則每一天都會有一組行,其中每組行共享相同的日期時間字段,例如, 2010-10-31 00:00:00
。
我希望將存儲過程實現爲基本每天運行的作業,並根據類似於Time Machine功能在OS X中的工作方式的標準清理此表中的修訂數。即,修訂版要保持應該是:每天在過去的一週
- 一個版本(因爲低於每週一次修訂),每星期,每星期之後,這個(午夜星期一早上修訂)
- 一個版本
- 一個版本每月修訂超過一年(每月第一天的午夜修訂)
因此,舉例來說,現在我希望看到如下的修訂:
- 2010-10-30(日)
- 2010-10-29(日)
- 2010-10-28(每日)
- 2010-10-27(每日)
- 2010-10-26(每日)
- 2010-10-25(每日/每週)
- 2010-10-18(每週)
- 2010-10-11(每週)
- 2010-10-04(每週)
- 2010-09-27(每週)
- ...
這當然要記住我的數據集還沒有一年。
那麼,什麼是最好,最簡潔的DELETE FROM
來實現這一目標?謝謝!
我們不爲你建造它 - 你試過了什麼? – 2010-10-31 19:43:20