SSRS - 从时间字段中删除秒数

时间:2013-07-24 13:35:00

标签: reporting-services expression rdl

如何从时间字段中删除秒数? 我试过了:

=Rset(Fields!hr_saida.Value,5) = return #Error
=TimeValue(Fields!hr_saida.Value) = return #Error
=FormatDateTime(CDate(Fields!hr_saida.Value),"hh:mm") = return #Error

我也尝试将我的文本框属性设置为Number> 13:30,但仍显示“hh:mm:ss” 我该如何删除?谢谢。

3 个答案:

答案 0 :(得分:4)

除@Yuriy之外的另一个选项是:

=Format(Fields!hr_saida.Value, "HH:mm")

24小时时间

或:

=Format(Fields!hr_saida.Value, "hh:mm")

代表AM / PM。

如果您的字段不是DateTime,则可能还需要使用CDate()

在评论后修改

尝试:

=Left(Fields!hr_saida.Value.ToString(), 5)

RSet也适用于ToString

这适用于24小时 - 你可以使用类似的东西:

=CDate(Fields!hr_saida.Value.ToString()).ToString("hh:mm")

代表AM / PM。

在我的测试中,我遇到了类似的错误:

Unable to cast object of type 'System.TimeSpan' to type 'System.IConvertible'.

  

从“TimeSpan”类型转换为“日期”类型无效。

我想这里的结论是SSRS 真的不喜欢SQL Server时间数据类型。

答案 1 :(得分:1)

4功能使用FormatDateTime选项。

=FormatDateTime(Fields!hr_saida.Value, 4)

应该做的伎俩。

答案 2 :(得分:0)

我无法无误地返回我想要的东西。我已经在强制转换datetime字段为时间,所以我只是抓住了剩下的5个字符(在SQL查询中)以减少秒数。不太优雅,但是完成了工作。

所以我表中的EndTime是日期时间数据类型,其值类似于2020-03-30 09:34:00.000。 我需要的只是时间短而没有秒,所以:

left(cast(EndTime as time),5) [End]

此更改后的报告列输出如09:34:0009:34,这是我所需要的。