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');
http://rextester.com/RBTO71933