46

1 つのテーブルが急速に大きくなる (毎月数百万行程度) PostgreSQL データベースを使用しているため、そのテーブルの内容を別のテーブルに定期的にアーカイブしたいと考えています。

cron ジョブを使用して毎晩 .sql ファイルを実行し、1 か月以上前のすべての行を他のテーブルにアーカイブするつもりです。

クエリは正常に機能していますが、1 か月前のタイムスタンプを動的に作成する方法を知る必要があります。

time列はフォーマットで保存されており、2013-10-27 06:53:12正確に 1 か月前のタイムスタンプを作成するために SQL クエリで何を使用するかを知る必要があります。たとえば、今日が 2013 年 10 月 27 日の場合、時間 <2013-09-27 00:00:00

4

3 に答える 3

56
select date_trunc('day', NOW() - interval '1 month')

このクエリは、現在から 1 か月前の日付を返し、時刻を 00:00:00 に丸めます。

于 2013-10-27T07:06:24.227 に答える