0

...所以我的 sql 视图将 nvarchar 返回为“123456”或“2008 年 1 月 11 日 12:00AM”(视图在两个表上进行联合并将日期转换为 nvarchar)。

我正在尝试应用一些条件日期格式,即我想通过检查“类型”列来格式化日期:

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

所以基本上如果类型是“COS”,那么只需按原样返回数据,否则将其格式化为日期。

预览报告时,如果它是 COS,那么我在文本框中得到 #Error(从字符串“123456”到类型“日期”的转换无效。

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

这有意义吗?

语法有什么问题还是我试图做的不可能?

替代文字

4

2 回答 2

0

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

否则,当您期望约会时,您会得到一个数字。

尝试添加 IsDate() 检查以删除非日期

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

编辑:

在DataSet中,请问它说的是什么数据类型?

于 2010-11-29T15:57:48.877 回答
0

而是修改了视图,因此我不会将日期转换为 nvarchar。

于 2010-11-30T09:35:17.533 回答