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
はタイムスタンプパラメータであり、positive_interval
ブールパラメータです。 trueの場合、タイムスタンプ列が渡されたタイムスタンプよりも低い行のみ。 falseの場合、その逆です。