Ada*_*mon 2 null date reporting-services
我有DiscontinuedDate列,其中包含日期时间或空白值.我用过表达式
FormatDateTime(Fields!DiscontinuedDate.Value, DateFormat.ShortDate)
Run Code Online (Sandbox Code Playgroud)
要将日期时间显示为日期,但是当值为空时,它会显示为错误,并显示以下消息"从字符串转换""到'类型'日期'无效."
所以我一直在尝试使用如下所示的IIF表达式:
=IIF(Fields!DiscontinuedDate.Value is "", "", FormatDateTime(Fields!DiscontinuedDate.Value, DateFormat.ShortDate))
Run Code Online (Sandbox Code Playgroud)
我尝试了一些变化,但它们都带回了同样的错误.有任何想法吗?
谢谢,
亚当
您的问题是SSRS IIf表达式不会短路,因此每当您有一个空白字符串时,您的代码仍将尝试FormatDateTime转换,因此即使您的支票也会出现此错误.
您可以添加一些逻辑来停止在表达式中计算的空字符串,方法是FormatDateTime使用另一个IIf将其更改为NULL值,这不会失败:
=IIF(Fields!DiscontinuedDate.Value = ""
, ""
, FormatDateTime(IIf(Fields!DiscontinuedDate.Value = ""
, Nothing
, Fields!DiscontinuedDate.Value)
, DateFormat.ShortDate))
Run Code Online (Sandbox Code Playgroud)
这解决了您的直接问题,但假设基础数据是基于文本的,我还建议您查看基础数据并使用显式DateTime类型数据类型而不是字符串来防止这些数据处于最低级别.
| 归档时间: |
|
| 查看次数: |
6806 次 |
| 最近记录: |