Använd inte age() funktion för datum/tid aritmetik. Den returerar bara "symboliska" resultat
(som är tillräckligt bra för mänsklig representation, men nästan meningslösa för datum/tid beräkningar; jämfört med standardskillnaden).
Standard differensoperatorn (- )
returnerar dagsbaserade resultat för båda date , timestamp och timestamp with time zone (den förstnämnda returnerar dagar som int , de två sistnämnda returnerar dagsbaserat interval s):
Från de dagsbaserade intervallen kan du extrahera dagar med extract() funktion:
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');
https://rextester.com/RBTO71933