Datetime 在SSRS表达式中设置小时/分钟的格式

Datetime 在SSRS表达式中设置小时/分钟的格式,datetime,reporting-services,ssrs-2008,Datetime,Reporting Services,Ssrs 2008,我试图通过SSRS中的表达式将两个单独的日期/时间字段合并到一个文本框中 我的表达是: =Format(Fields!EarlyShiftStart.Value,"hh:mm tt") & "-" & Format(Fields!LateShiftEnd.Value,"hh:mm tt") 报告中似乎是正确的: 但在预览报告时,我收到了一个警告: 警告1[rsRuntimeErrorInExpression]指定的值表达式 textrun“Textbox49.段落[0].Te

我试图通过SSRS中的表达式将两个单独的日期/时间字段合并到一个文本框中

我的表达是:

=Format(Fields!EarlyShiftStart.Value,"hh:mm tt") & "-" & Format(Fields!LateShiftEnd.Value,"hh:mm tt")
报告中似乎是正确的:

但在预览报告时,我收到了一个警告:

警告1[rsRuntimeErrorInExpression]指定的值表达式 textrun“Textbox49.段落[0].TextRuns[0]”包含错误:输入 字符串的格式不正确


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

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

 =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")
 =CStr(Format(Fields!EarlyShiftStart.Value,"hh:mm tt")) & "-" & CStr(Format(Fields!LateShiftEnd.Value,"hh:mm tt"))
这将过滤掉传入的
NULL

2) 您将这两个值与
-
连接,这可能是您将这两个值格式化为
时间
,然后与
字符串
值连接的原因。所以试着把你的表情改成

 =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")
 =CStr(Format(Fields!EarlyShiftStart.Value,"hh:mm tt")) & "-" & CStr(Format(Fields!LateShiftEnd.Value,"hh:mm tt"))
这将强制将您的时间值转换为字符串,然后转换它们


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

谢谢,编码员。我使用的是第二种解决方案,因为字段中不应出现空值。再次感谢!