Postgresql, найти изменения за последние n минут:
Postgresql не сохраняет автоматически дату или время добавления/обновления/удаления строк (обработка таких меток времени действительно замедлила бы работу, если бы вы этого не хотели).
Вам придется сделать это самостоятельно: добавить в таблицу столбец меток времени. Когда вы вставляете строку в таблицу, она обновляет столбец метки времени до current_timestamp
. Когда вы выбираете строку, используйте оператор select, который отфильтровывает временную метку, превышающую N минут назад, следующим образом:
Получить строки, в которых отметка времени больше даты:
SELECT * from yourtable
WHERE your_timestamp_field > to_date('05 Dec 2000', 'DD Mon YYYY');
Получить строки, которые были изменены за последние n минут:
SELECT * from yourtable
WHERE your_timestamp_field > current_timestamp - interval '5 minutes'
Пример прохождения
drop table foo;
CREATE TABLE foo(
msg character varying(20),
created_date date,
edited_date timestamp
);
insert into foo values( 'splog adfarm coins', '2015-01-01', current_timestamp);
insert into foo values( 'execute order 2/3', '2020-03-15', current_timestamp);
insert into foo values( 'deploy wessels', '2038-03-15', current_timestamp);
select * from foo where created_date < to_date('2020-05-05', 'YYYY-mm-DD');
┌────────────────────┬──────────────┬────────────────────────────┐
│ msg │ created_date │ edited_date │
├────────────────────┼──────────────┼────────────────────────────┤
│ splog adfarm coins │ 2015-01-01 │ 2020-12-29 11:46:27.968162 │
│ execute order 2/3 │ 2020-03-15 │ 2020-12-29 11:46:27.96918 │
└────────────────────┴──────────────┴────────────────────────────┘
select * from foo where edited_date > to_timestamp(
'2020-12-29 11:42:37.719412', 'YYYY-MM-DD HH24_MI_SS.US');
┌────────────────────┬──────────────┬────────────────────────────┐
│ msg │ created_date │ edited_date │
├────────────────────┼──────────────┼────────────────────────────┤
│ execute order 2/3 │ 2020-03-15 │ 2020-12-29 11:46:27.96918 │
│ deploy wessels │ 2038-03-15 │ 2020-12-29 11:46:27.969988 │
└────────────────────┴──────────────┴────────────────────────────┘
person
Eric Leschinski
schedule
07.12.2012
xmin
для получения измененных записей из таблицы (если в таблице 1 миллион записей?) - person Andrew   schedule 07.12.2012