SSRS 表达式中的格式 Hours/Minutes

Format Hours/Minutes in SSRS Expression

我试图通过 SSRS 中的表达式将两个单独的 date/time 字段合并到一个文本框中。

我的表情是:

=Format(Fields!EarlyShiftStart.Value,"hh:mm tt") & "-" & Format(Fields!LateShiftEnd.Value,"hh:mm tt")

而且在报告中看起来是正确的:

但我在预览报告时收到警告:

Warning 1 [rsRuntimeErrorInExpression] The Value expression for the textrun ‘Textbox49.Paragraphs[0].TextRuns[0]’ contains an error: Input string was not in a correct format

不确定为什么会出现此警告,因为它看起来是正确的。想法?

我不确定,但似乎从数据库中获取了错误的输入字符串。我最好的猜测是,您的情况发生这种情况有 2 个原因
1) 数据中的某些位置可能会显示 null 值。 如果您想避免警告,我建议您使用表达式 as,

 =Format(IIF(IsNothing(Fields!EarlyShiftStart.Value),"00:00",Fields!EarlyShiftStart.Value),"hh:mm tt") & "-" & Format(IIF(IsNothing(Fields!LateShiftEnd.Value),"00:00",Fields!LateShiftEnd.Value),"hh:mm tt")

这将过滤掉传入的 NULL 值。

2) 您将两个值与 - 连接起来,这可能是您将两个值格式化为 Time 然后与 string 值连接的原因。所以试着改变你的表达方式,

 =CStr(Format(Fields!EarlyShiftStart.Value,"hh:mm tt")) & "-" & CStr(Format(Fields!LateShiftEnd.Value,"hh:mm tt"))

这将强制将您的时间值转换为字符串,然后将它们连接起来。

如果所有值的格式都正确,我还建议您查看传入的值。所以你可以相应地改变你的表情。