首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cognos 10固定MM/dd但可变年份

Cognos 10固定MM/dd但可变年份
EN

Stack Overflow用户
提问于 2017-05-24 17:24:21
回答 2查看 273关注 0票数 1

希望将7月01设置为月和日,但有一个年度变量。总是想违约到最近一年的7月1日。

必须在Cognos10.2中的参数内工作。使用date2strings和string2date函数尝试了几个If语句。还尝试了一系列用于递归筛选数据的列。

逻辑如果current_month <= 6,则年份(current_date,-1 )其他年份(Current_date)。想把这一年和xxxx 06-01连接起来,或者最好是06/01/xxxx。继续获取运行时错误,而不是查询计算中的错误。

在这一点上看不到树木的森林。继续探索,如果实现了就会发布解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-24 18:38:55

您希望将日期保持在日期格式,并在可能的情况下避免转换为字符串和连接。Cognos为您提供了几个本机函数来操作日期,而不必进行转换。

这是你的表情:

代码语言:javascript
复制
_add_years(
    _add_months(
        _first_of_month(
            current_date
        ),
        7 - extract(
            month,
            current_date
        )
    ),
    floor(
        extract(
            month,
            current_date
        )
        / 7
    ) - 1
)

如果你把它从内往外看,就更容易理解了。

函数返回当前月份的第一天。然后,我们使用一些数学来确定要传递给_add_months()函数的偏移量,该函数将把当前月份的第一个值转换为当前年份中的每个月份值的7月1日。最后,我们再次使用数学将0或1年添加到结果日期,使用_add_years()函数。对于所有小于7的月份,我们加-1,对于月份7和更大的月份,我们加0。

票数 0
EN

Stack Overflow用户

发布于 2017-05-25 17:31:44

这个很管用。还在试图弄清楚_make_timestamp ()是如何神奇地知道当前FY开始日期的吗?

如果(月份( current_date )<7),则( _make_timestamp (今天的年份- 1,7,1))如果(月份( current_date )>6),则( _make_timestamp (今天的年份+ 0,7,1))否则为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44164988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档