2016-08-11 38 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天