Verwenden Sie nicht das age() Funktion für Datum/Uhrzeit-Arithmetik. Es gibt nur "symbolische" Ergebnisse zurück
(die für die menschliche Darstellung gut genug sind, aber für Datums-/Uhrzeitberechnungen fast bedeutungslos sind; verglichen mit der Standarddifferenz).
Der standardmäßige Differenzoperator (- )
gibt tagesbasierte Ergebnisse für beide date zurück , timestamp und timestamp with time zone (Erstere gibt Tage als int zurück , die letzten beiden geben ein tagesbasiertes interval zurück s):
Aus den tagesbasierten Intervallen können Sie mit extract() Tage extrahieren 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