Първите неща, които изскачат
EXTRACT(EPOCH FROM current_timestamp-somedate)/3600
Може да не е красиво, но деблокира пътя. Може да е по-хубаво, ако беше дефинирано разделяне на интервал по интервал.
Редактиране :ако искате да е по-голямо от нула, използвайте abs или greatest(...,0). Което отговаря на вашите намерения.
Редактиране++ :причината, поради която не използвах age
това е age
с един аргумент, за да цитирате документацията:Извадете от current_date (в полунощ) . Това означава, че не получавате точна „възраст“, освен ако не бягате в полунощ. В момента тук е почти 1 сутринта:
select age(current_timestamp);
age
------------------
-00:52:40.826309
(1 row)