В моей таблице хранятся даты в виде 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')
Насколько я понимаю, это преобразование поля bigint mytstamp
в метку времени, чтобы сравнить его с меткой времени "30 дней назад". Он делает это для каждой записи в таблице :(. Кажется, более эффективно преобразовать текущую метку времени - 30 дней в один раз в bigint, а затем сравнить это со всеми моими датами bigint.
У меня слабые навыки SQL, так что будь проще :). Спасибо за помощь.