select id, passed_ts - ts_column difference
from t
where
passed_ts > ts_column and positive_interval
or
passed_ts < ts_column and not positive_interval
order by abs(extract(epoch from passed_ts - ts_column))
limit 1
passed_ts
es el parámetro de marca de tiempo y positive_interval
es un parámetro booleano. Si es verdadero, solo las filas donde la columna de la marca de tiempo es más baja que la marca de tiempo pasada. Si es falso, al revés.