PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgresql - obtient la ligne datetime la plus proche par rapport à la valeur datetime donnée

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 est le paramètre d'horodatage et positive_interval est un paramètre booléen. Si vrai, seules les lignes où la colonne d'horodatage est inférieure à l'horodatage passé. Si faux l'inverse.