Не имеет отношения к вопросу, но: вы никогда не должны сохранять значения меток времени (или даты или числа) в varchar
.
Сначала вы должны преобразовать значение varchar в метку времени. Если значения действительно отформатированы правильно, вы можете просто привести их: Date_Time::timestamp
- или, возможно, к timestamptz
.
Насколько я могу судить, вы хотите, чтобы в вашем результате была следующая строка . Этого можно добиться с помощью оконной функции lead()
select event,
Date_Time,
date_time::timestamp - lead(date_time::timestamp) over (order by date_time::timestamp) as time_difference
from the_table
order by date_time;
Результатом вычитания одной временной метки из другой является интервал , вы можете форматировать , если хотите.