2010-11-29 77 views
0

...所以我的sql视图返回nvarchar'123456'或'JAN 11 2008 12:00 AM'(视图在两个表上执行联合并将日期转换为nvarchar)。Reporting Services 2005 - 条件日期格式化不起作用

我试图运用一些有条件的日期格式即我想通过检查“类型”列格式化日期:

=IIf(Fields!Type.Value = "COS", Fields!CosNoOrDateToContractor.Value, FormatDateTime (Fields!CosNoOrDateToContractor.Value, vbShortDate)) 

所以基本上如果类型是“COS”然后就回数据原样,否则将其格式化为日期。

当预览报告,如果它是一个COS然后我在文本框中获取#错误(从字符串转换“123456”输入“日期”是无效的。

这是其他任何东西,然后数据被格式化为日期。

这是否有道理?

什么毛病语法或者是什么,我试图做不可能的?

alt text

+0

看起来像它试图格式化数据到DateTime评估表达式之前...从哪里去? – empo 2010-11-29 17:17:05

回答

0

修改了视图,所以我没有将日期转换为nvarchar。

0

我的猜测是你在文本框“格式”字段中有一些格式

否则,你有一个数字,当你期望一个日期。

尝试添加则IsDate()检查过,以除去非日期

=IIf(Fields!Type.Value <> "COS" AND IsDate(Fields!CosNoOrDateToContractor.Value) 
    , FormatDateTime (Fields!CosNoOrDateToContractor.Value, vbShortDate) 
     , Fields!CosNoOrDateToContractor.Value) 

编辑:

在数据集中,数据类型是什么它说的吗?

+0

我可以在文本框的Format属性中看到格式。 – empo 2010-11-29 16:04:28