Les premières choses qui apparaissent
EXTRACT(EPOCH FROM current_timestamp-somedate)/3600
Peut-être pas joli, mais débloque la route. Pourrait être plus joli si la division d'intervalle par intervalle était définie.
Modifier :si vous voulez qu'il soit supérieur à zéro, utilisez abs ou le plus grand (..., 0). Selon ce qui convient à votre intention.
Modifier++ :la raison pour laquelle je n'ai pas utilisé age
est cet age
avec un seul argument, pour citer la documentation :Soustraire de current_date (à minuit) . Cela signifie que vous n'obtenez pas un "âge" précis à moins de courir à minuit. En ce moment, il est presque 1h du matin ici :
select age(current_timestamp);
age
------------------
-00:52:40.826309
(1 row)