如何在格式化的datetimeoffset列中显示NULL值?

时间:2014-07-16 14:37:03

标签: sql-server reporting-services ssrs-2008

SSRS - Report Builder 3.0

我们最近将所有SQL Server日期时间列迁移到datetimeoffset列。这对我们的一份报告产生了有害影响。

报告引用名为TerminalStateDateTime的NULLABLE datetimeoffset列。我希望使用以下格式:

=格式(字段!TerminalStateDateTime.Value.DateTime," dd MMM yyyy hh:mm")

不幸的是,当TerminalStateDateTime的值为NULL时,它显示#Error。我尝试使用IIF和Switch来捕获它,但没有任何作用:

=IIF(IsNothing(Fields!TerminalStateDateTime.Value), "", Format(Fields!TerminalStateDateTime.Value.DateTime, "dd MMM yyyy hh:mm"))

enter image description here

有没有人知道如何忽略NULL值并正确格式化非NULL值?

由于

爱德华

1 个答案:

答案 0 :(得分:1)

最简单的选择是简单地在文本框中应用格式,而不是通过表达式。

使用一些简单的数据:

select TerminalStateDateTime = cast('20140101' as datetimeoffset)
union all select TerminalStateDateTime = cast('20140201' as datetimeoffset)
union all select null

enter image description here

我有一张简单的表格:

enter image description here

第一列只显示值。第二个使用你的表达,即

= Format(Fields!TerminalStateDateTime.Value.DateTime, "dd MMM yyyy hh:mm")

第三种应用相同的格式,但在文本框属性中:

enter image description here

您可以看到这不会给#Error

enter image description here