我一直认为,当存储过程带回一个空日期时间时,SSRS 报告会在该单元格中显示 Mindate。问题是,根据我的经验,这并不总是正确的。我不知道为什么。有时报告会显示空白,有时会提示空日期时间。这是为什么?
是否有解释其工作原理的规则或文档(有意义)?当您使用的工具不一致时,很难保持一致。我可以制作两个设置完全相同的报告。一个将显示 mindate,一个将显示空日期时间为空白。我不明白。
编辑:
首先,是的,很多人都发生过头脑清醒的事情。 https://www.google.com/search?num=50&q=ssrs+null+date+show+blank&oq=ssrs+null+date+show+blank&gs_l=serp.3...8759.9774.0.9941.10.10.0.0。 0.0.152.888.8j2.10.0....0...1c.1.25.serp..8.2.166.kl2WBVx4Ijw
几乎每个结果都会有人在他们想要空白时谈论思维导图。许多结果来自 Stack Overflow,所以在你开始告诉我它永远不会发生之前,请意识到你完全错了。你可能从未见过它。在我多年的饮食和数千顿饭中,我从未在食物中看到过断指。不代表没有人发生过......
显示最小日期的示例:
在报告中,文本框的表达式为:
=Fields!SecondaryInjuryRecordDate.Value
在占位符属性窗口中,数字格式设置为 Date->01/31/2000。很简单,没有什么奇怪的事情发生。正确的?
在 proc 中,该列的代码是:
CASE WHEN ISNULL(l.SecondaryInjury, 0) = 0 THEN '' ELSE l.SecondaryInjuryDXDate END AS SecondaryInjuryRecordDate
这导致每当 SecondaryInjuryDXDate 为空时都会显示 Mindate。我不得不切换到这个:
CASE WHEN ISNULL(l.SecondaryInjury, 0) = 0 THEN '' ELSE ISNULL(l.SecondaryInjuryDXDate, '') END AS SecondaryInjuryRecordDate
...当日期为空时得到空白。
SecondaryInjuryDXDate 是 DATETIME,而 SecondaryInjury 有点。