Las primeras cosas que aparecen
EXTRACT(EPOCH FROM current_timestamp-somedate)/3600
Puede que no sea bonito, pero desbloquea el camino. Podría ser más bonito si se definiera la división de intervalo por intervalo.
Editar :si lo quiere mayor que cero, use abs o great(...,0). Cualquiera que se adapte a su intención.
Editar++ :la razón por la que no usé age
es esa age
con un solo argumento, para citar la documentación:Reste de fecha_actual (a medianoche) . Lo que significa que no obtiene una "edad" precisa a menos que se ejecute a medianoche. Ahora mismo es casi la 1 a. m. aquí:
select age(current_timestamp);
age
------------------
-00:52:40.826309
(1 row)