[英]Replace existing DATE format with another format in SSRS expression
我有一个表,该表的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
,不应更改,因为它不是日期
解决方案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
在SQL本身中处理它
如果您所有的日期都有一个“-”,并且您的文本都没有一个“-”:
=IIF(Fields!TEST.Value like "*-*", FORMAT(CDATE(Fields!TEST.Value), "dd-MMM") ,Fields!TEST.value)
未经测试,但应该可以。 编辑以返回实际日期。
编辑:经过更多的实验后,我发现您想要的结果将导致SSRS列的类型(日期/字符串)不一致,并且我认为不可能在字符串中同时包含字符串类型和日期类型同一列。
我的错误是不及早意识到这一点。
为了返回实际日期,您将需要清理/过滤数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.