Не използвайте age() функция за аритметика за дата/час. Той само връща "символични" резултати
(които са достатъчно добри за човешко представяне, но почти безсмислени за изчисления на дата/час; в сравнение със стандартната разлика).
Стандартният оператор за разлика (- )
връща базирани на деня резултати и за двете date , timestamp и timestamp with time zone (първото връща дни като int , последните две връщат базиран на дни interval s):
От дневните интервали можете да извлечете дни с extract() функция:
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