2016-08-11 23 views
0

嗨我正在使用以下计算年价格字段。价格年化在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的值?当涉及任何日期时,价值是否完美?

+0

添加样品表数据和预期结果。向我们展示整个查询(可能是简化的)。 – jarlh

回答

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()是有点棘手,因为它返回小数个月。但是,如果差异总是在本月的第一天,那么你是安全的。

+0

OP似乎每天都需要一笔金额,所以这不太可能有帮助 - 他会从1月1日到1月31日的金额要求从4月1日到4月30日。其实我碰巧知道他在找什么,他在OTN上也是这样。) – mathguy

1

2016年是闰年.. 366天。虽然2017年有365天

你DENOM从730天下滑到729天