SSRS平均时间(分钟),然后格式为HH MM

时间:2015-06-19 18:28:40

标签: sql stored-procedures reporting-services formatting

我已经看到很多关于SSRS平均时间的问题,但我对此并不熟悉,这些问题都没有解决我的具体需求,所以任何帮助都会受到赞赏。

我有一个持续时间字段(Fields!Duration1.Value),持续时间以分钟为单位(例如:170)。在我的存储过程中,我将其转换为HH MM,如下所示:

CONVERT(VARCHAR(5),DATEADD(minute, test.Duration,0) ,114) AS Duration1

这就像一个魅力,我在我的SSRS报告中使用它。不幸的是,我也需要获得平均持续时间。所以我把原始字段test.Duration作为我的存储过程中的额外SELECT。报告设置为矩阵,因此它是"总计"我想要显示平均值的行。

所以我非常确定我需要先:

=Avg(Fields!test.Duration.Value)

哪个有效(但有一个荒谬的十进制值),但我怎么然后将该值格式化回HH:MM ???我确信我可以在我的存储过程中执行此操作,但我对如何在那里执行此操作并不乐观:欢迎任何欢迎!

由于

1 个答案:

答案 0 :(得分:0)

您可以将自己的格式化功能添加到“报告代码”部分:

Public Function MinsToHHMM (ByVal Minutes As Decimal)
  Dim HourString = Floor(Minutes/60).ToString() 
  Dim MinString = Floor(Minutes Mod 60).ToString()
  Return HourString.PadLeft(2, "0") & ":" & MinString.PadLeft(2, "0")
End Function 

然后在单元格表达式中调用它:

=Code.MinsToHHMM(Avg(Fields!test.Duration.Value))