Sql server 如何在格式化的datetimeoffset列中显示空值?

Sql server 如何在格式化的datetimeoffset列中显示空值?,sql-server,reporting-services,ssrs-2008,Sql Server,Reporting Services,Ssrs 2008,SSRS-报表生成器3.0 我们最近已将所有SQL Server datetime列迁移到datetimeoffset列。这对我们的一份报告产生了不利影响 报表引用了一个名为TerminalStateDateTime的可为空的datetimeoffset列。我希望使用以下格式: =格式(字段!TerminalStateDateTime.Value.DateTime,“dd-MMM-yyy-hh:mm”) 不幸的是,当TerminalStateDateTime的值为NULL时,它会显示#Error

SSRS-报表生成器3.0

我们最近已将所有SQL Server datetime列迁移到datetimeoffset列。这对我们的一份报告产生了不利影响

报表引用了一个名为TerminalStateDateTime的可为空的datetimeoffset列。我希望使用以下格式:

=格式(字段!TerminalStateDateTime.Value.DateTime,“dd-MMM-yyy-hh:mm”)

不幸的是,当TerminalStateDateTime的值为NULL时,它会显示#Error。我尝试过使用IIF和Switch来捕捉这个,但没有任何效果:

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

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

谢谢


Edward

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

使用一些简单的数据:

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

我有一张简单的桌子:

第一列仅显示值。第二个使用您的表达式,即

= Format(Fields!TerminalStateDateTime.Value.DateTime, "dd MMM yyyy hh:mm")
第三个应用相同的格式,但在文本框属性中:

您可以看到,这并没有给出错误: