首页 文章

SQL中的年度价格

提问于
浏览
0

嗨,我使用以下计算来年化价格字段 .

(price  *  365 / close _date - begin_date ) *  9.35/100

这个计算在涉及闰年时有效

例如当价格= 6000时

开始日期= 1-jan- 2016

截止日期= 2017年12月31日

所以年化值是280.50

但是,当我将开始日期和结束日期更改为2017年1月1日和31日至2018年时, Value 变为280.88

在这两种情况下如何将值设置为280.50?可以进行任何平均,以便在涉及任何日期时值完美吗?

2 回答

  • 0

    您可能想要使用 months_between()

    select price  *  12 / months_between(close _date, begin_date ) *  9.35/100
    

    您可能需要将边界调整一天才能使其适用于您的日期:

    select price  *  12 / months_between(close _date + 1, begin_date) *  9.35/100
    

    注意: months_between() 有点棘手,因为它会返回小数月份 . 但是,如果差异始终是本月的第一天,那么您就是安全的 .

  • 1

    2016年是闰年.. 366天 . 2017年有365天

    你的Denom从730天减少到729天

相关问题