我有一个带有类似于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
答案 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))
我无法测试这个抱歉