代码之家  ›  专栏  ›  技术社区  ›  Frank Schmitt

SQL Server Reporting Services的小时格式为Hours:Minutes

  •  2
  • Frank Schmitt  · 技术社区  · 16 年前

    我在SQLServerReportingServer上编写报告,报告的小时数按用户分组,总小时数根据值的总和计算。

    有没有办法:

    1. 以HH:MM格式显示时间间隔(以分钟或小时为单位),同时以十进制形式计算?
    2. 或者拆分并计算HH:MM文本值的总和,得到一个表达式形式的总和?

    3 回复  |  直到 16 年前
        1
  •  4
  •   Frank Schmitt    16 年前

    回答我自己的问题1:

    1. 使查询返回分钟数(用 TimeSpent 下面)。
    2. 将文本框的格式设置为“常规”(如果尚未设置)
    3. 使用以下表达式作为值: =FLOOR(Fields!TimeSpent.Value / 60) & ":" & RIGHT("0" & (Fields!TimeSpent.Value MOD 60), 2)
    4. 对于“总和”文本框,请使用以下表达式: =FLOOR(Sum(Fields!TimeSpent.Value) / 60) & ":" & RIGHT("0" & (Sum(Fields!TimeSpent.Value) MOD 60), 2)
        2
  •  2
  •   KennyNeal    16 年前

    您也可以尝试将此函数放入报表的自定义代码中。

    Function secondsToString(seconds As int64) As String
    Dim myTS As New TimeSpan(seconds * 10000000)
    Return String.Format("{0:00}:{1:00}:{2:00}",myTS.Hours, myTS.Minutes, myTS.Seconds)
    End Function
    

    我不能相信这一点,因为我知道我在网上偶然发现了它,但我不记得在哪里。

        3
  •  0
  •   Aadspro Sandr    11 年前

    =格式(DateAdd(“s”,(参数!ReportParameter1.Value*60),“00:00:00”),“HH:mm:ss”)

    推荐文章