IIF更改表中字段的值

时间:2014-12-02 13:33:07

标签: reporting-services

我有一个带有类似于20141230 yyyyMMdd的int的表 并非每个日期都填写完毕,并希望在将int转换为日期时间时显示另一条消息#error

=IIF(Fields!LMEXPI.Value = "" OR IsNothing(Fields!LMEXPI.Value), "NoDate", "")

在真实的部分中,我想添加此代码

=new DateTime(Fields!LMEXPI.Value / 10000, (Fields!LMEXPI.Value / 100) mod 100, Fields!LMEXPI.Value mod 100)

在第一个示例中,它使用“NoDate”更改为空的日期,但是当我将第二个代码块添加到IIF表达式时它会完全关闭并在每一行上显示#error

2 个答案:

答案 0 :(得分:2)

您需要将int转换为字符串以获得不抛出#errors的第一个条件,然后您应该能够使用DateSerial来构造具有该逻辑的日期:

=IIF(CStr(Fields!LMEXPI.Value) = "" OR IsNothing(Fields!LMEXPI.Value), "NoDate", DateSerial(Fields!LMEXPI.Value / 10000, (Fields!LMEXPI.Value / 100) Mod 100, Fields!LMEXPI.Value Mod 100))

答案 1 :(得分:0)

您不能使用新的内联来实现值

=IIF(Fields!LMEXPI.Value = "" OR IsNothing(Fields!LMEXPI.Value), "NoDate", DateValue(MEXPI.Value))

我无法测试这个抱歉