No uses la age()
función para la aritmética de fecha/hora. Solo devuelve resultados "simbólicos"
(que son lo suficientemente buenos para la representación humana, pero casi sin sentido para los cálculos de fecha/hora, en comparación con la diferencia estándar).
El operador de diferencia estándar (-
)
devuelve resultados basados en días para ambos date
, timestamp
y timestamp with time zone
(el primero devuelve días como int
, los dos últimos devuelven interval
basado en días s):
De los intervalos basados en días puede extraer días con extract()
función:
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