Non utilizzare age()
funzione per aritmetica data/ora. restituisce solo risultati "simbolici"
(che sono abbastanza buone per la rappresentazione umana, ma quasi prive di significato per i calcoli di data/ora; rispetto alla differenza standard).
L'operatore di differenza standard (-
)
restituisce risultati giornalieri per entrambi date
, timestamp
e timestamp with time zone
(il primo restituisce i giorni come int
, gli ultimi due restituiscono un interval
basato su giorni s):
Dagli intervalli basati sui giorni puoi estrarre i giorni con extract()
funzione:
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