如何将 case 函数应用于每四年出现一次的闰年到 Cognos 中的日期公式?

How do I apply case function to a Leap Year that occurs every four years to a date formula in Cognos?

如何将大小写函数应用于日期公式中每四年出现一次的闰年?

我在 cognos 中有这个名为 INSURANCE TERM 查询的数据项 1,里面有一个公式。

(12 * _days_between([Policy Expiration Date],[Policy Effective Date]))/365 

下面是表达式 Policy Expiration Date 的 属性,以防您想知道。

该公式用于计算保险期限。 12 个月乘以下面提示中 [Policy Expiration Date]、[Policy Effective Date] 之间的天数。以365天为平年。

如何在平年和闰年之间加入大小写函数? 像这样..

Case when Year([Policy Expiration Date]) in ('2013', '2014', '2015') then DATA ITEM 1 else DATE ITEM 2((12 * _days_between([Policy Expiration Date],[Policy Effective Date]))/366)

但是我不能写in(2008-2032闰年)因为它太长了。有没有办法解决这个问题?

评论太长,答案可能不完整。

不太确定我明白这里的逻辑。您是否有两个日期列,一个用于开始,另一个用于结束?

假设您想知道 1 月 1 日和 3 月 1 日之间的天数差异。对于闰年,您的计算方式具有挑战性。但是使用 datediff 它可以毫不费力地处理这个问题。

declare @StartDate date = '2012-01-01'
    , @EndDate date = '2012-03-01'

select DATEDIFF(day, @StartDate, @EndDate)

select @StartDate = '2015-01-01'
    , @EndDate = '2015-03-01'

select DATEDIFF(day, @StartDate, @EndDate)