我在使用Postgresql(在Amazon Redshift上),我需要计算两个日期之间的差异,然后在一个公式中使用该值来计算一个比率,所以日期差异需要被翻译成一个数值,最好是浮点数或双精度。
我有两个日期。1/1/2017和1/1/2014。 我需要找到这两个日期之间的天数差。
当我使用age函数时,我得到1080天。
select age('2017-01-01','2014-01-01')
然而,由于age返回的是一个区间,而我需要处理一个数字结果,所以我使用EXTRACT来转换最终值。 我选择了epoch,因为我没能找到EXTRACT的其他值,可以得到两个日期之间的时间单位数。 这个公式得出的结果是1095.75天(除数是一天中的秒数)。
select extract(epoch from age('2017-01-01','2014-01-01'))/86400
为什么我在使用age和使用extract时得到的是19.75天的差异?