PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgresql - Holen Sie sich die nächste Datetime-Zeile relativ zum angegebenen Datetime-Wert

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 ist der timestamp-Parameter und positive_interval ist ein boolescher Parameter. Wenn wahr, nur Zeilen, in denen die Zeitstempelspalte niedriger ist als der übergebene Zeitstempel. Wenn falsch das Gegenteil.