嗨我正在使用以下计算年价格字段。价格年化在SQL
(price * 365/close _date - begin_date) * 9.35/100
当闰年涉及
例如当价格= 6000
开始日期= 1-jan- 2016
结束日期= 31-DEC-2017该计算工作
所以年率值为280.50
但磨片n我将开始日期&结束日期更改为2017年1月1日和201年31月31日,值更改为280.88
如何在两种情况下都获得280.50的值?当涉及任何日期时,价值是否完美?
嗨我正在使用以下计算年价格字段。价格年化在SQL
(price * 365/close _date - begin_date) * 9.35/100
当闰年涉及
例如当价格= 6000
开始日期= 1-jan- 2016
结束日期= 31-DEC-2017该计算工作
所以年率值为280.50
但磨片n我将开始日期&结束日期更改为2017年1月1日和201年31月31日,值更改为280.88
如何在两种情况下都获得280.50的值?当涉及任何日期时,价值是否完美?
您可能需要使用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()
是有点棘手,因为它返回小数个月。但是,如果差异总是在本月的第一天,那么你是安全的。
OP似乎每天都需要一笔金额,所以这不太可能有帮助 - 他会从1月1日到1月31日的金额要求从4月1日到4月30日。其实我碰巧知道他在找什么,他在OTN上也是这样。) – mathguy
2016年是闰年.. 366天。虽然2017年有365天
你DENOM从730天下滑到729天
添加样品表数据和预期结果。向我们展示整个查询(可能是简化的)。 – jarlh