Le calcul de la différence entre deux dates à l'aide de l'âge et de l'extrait donne des résultats différents dans Postgresql

Je suis en utilisant Postgresql (sur Amazon Redshift), et j'ai besoin de calculer la différence entre deux dates, et ensuite utiliser cette valeur dans une formule pour calculer un rapport, si la date de la différence doit être traduit en une valeur numérique, de préférence un float ou double précision.

J'ai deux dates: 1/1/2017 et 1/1/2014. J'ai besoin de trouver la différence entre ces deux dates en nombre de jours.

Lorsque j'utilise la fonction age je obtenir 1080 jours:

select age('2017-01-01','2014-01-01')

Cependant, depuis l'âge de renvoie un intervalle et j'ai besoin de travailler avec un résultat numérique, je suis à l'aide d'EXTRAIRE de convertir la valeur finale. J'ai choisi à l'époque parce que je n'ai pas pu trouver une autre valeur pour l'EXTRAIT qui donnerait le nombre d'unités de temps entre les deux dates. Cette formule calcule 1095.75 jours (le diviseur est le nombre de secondes dans une journée):

select extract(epoch from age('2017-01-01','2014-01-01'))/86400

Pourquoi suis-je une différence de 19,75 jours lors de l'utilisation de l'âge de vs à l'aide de l'extrait?

InformationsquelleAutor Ryan | 2014-08-12