我有一個PostgreSQL數據庫,其中一個錶快速增長非常大(每月大約數百萬行),所以我想定期將該表的內容歸檔到單獨的表中。在PostgreSQL獲取一個月前的時間戳
我打算使用cron作業每夜執行一個.sql文件,將所有超過一個月的行存檔到另一個表中。
我的查詢工作正常,但我需要知道如何動態創建一個月前的時間戳。
time
列以2013-10-27 06:53:12
格式存儲,我需要知道在SQL查詢中使用什麼來構建恰好一個月前的時間戳。例如,如果今天是2013年10月27日,我想查詢匹配的所有行時間< 2013-09-27 00:00:00
「時間列以2013-10-27 06:53:12格式存儲」 - 您應該使用['timestamp'列](http://www.postgresql.org/docs/current/interactive /datatype-datetime.html),而不是一個格式化的字符串,因爲它會使事情變得更容易和更高效。 – IMSoP
「30天」比「一個月」更精確,「恰好一個月」基本上沒有意義。在SQL中,如果從2013-03-28,03-29,03-30和03-31中減去恰好一個月,並且您得到相同的答案:2013-02-28。這很重要嗎? –
@IMSoP不幸的是,我無法控制數據庫結構。我正在運行Quassel IRC Core,並且在積壓表中有1,800萬行導致客戶端加載非常緩慢,所以爲了維持客戶端穩定性,我需要對除近期行之外的所有行進行歸檔。 –