我有一个包含 TEST 列的表,其中包含许多值:
TEST
2014-04-02
2014-04-03
2014-04-04
WEEKLY TOTAL
PRIOR WEEK
12 WEEK
如何使用IIF
语句编写表达式,如果该行包含日期,则将日期更改为其他格式?
例如:
第一行有2014-04-02
(yyyy-mm-dd),应更改为02-Apr
(dd-mmm)
最后一行有12 week
,不应该触及,因为它不是日期
答案 0 :(得分:4)
解决方案1:
=iif(isDate(Fields!Test.Value)
,FORMAT(
CDATE(iif(isDate(Fields!Test.Value), Fields!Test.Value, Nothing))
, "dd-MMM"
)
,Fields!Test.Value)
解决方案2:
使用CASE WHEN
答案 1 :(得分:1)
如果您的所有日期都有' - ',那么您的所有文字都没有' - ':
=IIF(Fields!TEST.Value like "*-*", FORMAT(CDATE(Fields!TEST.Value), "dd-MMM") ,Fields!TEST.value)
未经测试,但应该有效。编辑返回实际日期。
编辑:经过一些更多的实验,我突然意识到你想要的东西会导致SSRS列的类型不一致(日期/字符串),我认为不可能同时拥有字符串类型和日期同一列中的类型。
我的错误是没有早点意识到这一点。
要返回实际日期,您需要清理/过滤数据。