テーブルに bigint として保存されている日付があり、30 日より古いレコードを選択しようとしています。この質問に関連する SO と Google でたくさんの質問を見てきましたが、必要なものが見つかりません。
これは私が持っているもので、非常に非効率的です:
SELECT
COUNT(*)
FROM
alert
WHERE
('1969-12-31 19:00:00 GMT'::timestamp + (alert.mytstamp::text)::interval) < (localtimestamp - INTERVAL '30 days')
私が理解していることから、bigintmytstamp
フィールドをタイムスタンプに変換して、「30 日前」のタイムスタンプと比較しています。テーブル内のすべてのレコードに対してこれを行います:(。現在のタイムスタンプ-30日をbigint ONE TIMEに変換し、それをすべてのbigint日付と比較する方が効率的です。
私のSQLスキルは弱いので、簡単に行ってください:)。助けてくれてありがとう。