Pierwsze pojawiające się rzeczy
EXTRACT(EPOCH FROM current_timestamp-somedate)/3600
Może nie jest ładna, ale odblokowuje drogę. Mogłoby być ładniej, gdyby zdefiniowano dzielenie przedziału przez przedział.
Edytuj :jeśli chcesz, aby była większa od zera, użyj abs lub największego(...,0). Cokolwiek odpowiada Twoim intencjom.
Edytuj++ :powód, dla którego nie użyłem age
czy to age
? z jednym argumentem, cytując dokumentację:Odejmij od bieżącej_daty (o północy) . Oznacza to, że nie otrzymasz dokładnego „wieku”, chyba że biegasz o północy. Teraz jest prawie pierwsza w nocy:
select age(current_timestamp);
age
------------------
-00:52:40.826309
(1 row)