Gebruik niet de age()
functie voor rekenen met datum/tijd. Het geeft alleen "symbolische" resultaten
(die goed genoeg zijn voor menselijke representatie, maar bijna zinloos voor datum/tijd-berekeningen, vergeleken met het standaardverschil).
De standaard verschiloperator (-
)
retourneert op dag gebaseerde resultaten voor beide date
, timestamp
en timestamp with time zone
(de eerste keert dagen terug als int
, de laatste twee retourneren op dag gebaseerde interval
s):
Uit de op dagen gebaseerde intervallen kunt u dagen extraheren met de extract()
functie:
select current_date - '2017-01-01',
extract(day from now()::timestamp - '2017-01-01 00:00:00'),
extract(day from now() - '2017-01-01 00:00:00Z');
http://rextester.com/RBTO71933