【发布时间】:2015-04-27 17:11:57
【问题描述】:
FILTER("source"."recordCount" USING "source"."snapshot_date" =
EVALUATE('TO_CHAR(%1, ''YYYYMMDD'')', TIMESTAMPADD(SQL_TSI_DAY, -7, EVALUATE('TO_DATE(%1, %2)', "source"."snapshot_date" , 'YYYYMMDD'))))
所以我在这里有这段代码。我知道有些人会说“只需使用 AGO 功能”但不知何故它会因为它与其他表的连接而导致问题,所以我在这里想要实现的目标就像是翻拍。这个过程是这样的:
那里的快照日期实际上是 varchar 格式而不是日期。所以它就像“20131016”,我试图将其更改为日期,然后使用 TIMESTAMPADD 函数从中减去 7 天,最后将其返回给 varchar 以与 FILTER 一起使用。
在使用硬编码值(例如“20131016”)测试 FILTER 时,此 sn-p 以某种方式起作用,但是当使用上面的代码进行测试时,所有行都是空白的。在纸面上,我认为会发生的过程是这样的。 "20131016" 转换为格式为 20131016 (yyyymmdd) 的日期,然后小于 7 天:20131009,然后再次转换为 char "20131009" 用于过滤器。
但不知何故,这不会发生。我认为数据格式不适用于字符串->日期或日期->字符串转换。这导致值根本不匹配。
有人知道我的代码有什么问题吗?
顺便说一句,我已经尝试过使用 CAST 而不是 EVALUATE 或 TO_TIMEDATE 来获得相同的结果。哦,这是BMM中列的公式。
谢谢
【问题讨论】:
标签: obiee