PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql:ottieni la riga datetime più vicina rispetto al valore datetime specificato

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 è il parametro timestamp e positive_interval è un parametro booleano. Se true solo le righe in cui la colonna timestamp è inferiore al timestamp passato. Se falso l'inverso.