【问题标题】:calculate the time difference between two dates in HH:MM format using ssrs使用 ssrs 以 HH:MM 格式计算两个日期之间的时间差
【发布时间】:2016-03-16 07:33:56
【问题描述】:

我需要在 SSRS 中以 HH:MM 格式生成两个日期之间的时差。我怎样才能做到这一点?我的数据源是 MS CRM FetchXML。

例如 : Date1 : 01/01/2016 04:05 AM 日期 2 : 01/03/2016 02:15 PM 时差应该是:58:10

问候, 桑迪普

【问题讨论】:

  • 添加了 ssrs-2012 标签,因为这似乎是您正在使用的 - 如果不是这种情况,请修改其他内容。

标签: reporting-services time ssrs-2008-r2 ssrs-2012 fetchxml


【解决方案1】:

我可能有点太晚了,但需要计算两次之间的经过时间。因此我偶然发现了这个链接

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/26d8b4fc-6862-42a0-ac7f-0caa93ba2fde/to-find-ellapse-time-in-ssrs-2008?forum=sqlreportingservices

下面的表达式对我有用。我还发现在 SSRS 中比在 SQL 中更简单。

=Datediff("h",Fields!StartDate.value,Fields!EndDate.value) & ":" & Datediff("n",Fields!StartDate.value,Fields!EndDate.value) mod 60 & ":" & Datediff("s",Fields!StartDate.value,Fields!EndDate.value) mod 60

上面的结果将是 HH:MM:SS

【讨论】:

    【解决方案2】:

    试试这个:

    =DateDiff(
    DateInterval.Hour,CDATE("01/01/2016 04:05 AM"), CDATE("03/01/2016 02:15 PM")
    ) & ":" &
    DateDiff(
    DateInterval.Minute,CDATE("01/01/2016 04:05 AM"), CDATE("03/01/2016 02:15 PM")
    ) Mod 60
    

    它将产生58:10

    将 CDATE() 替换为包含您的日期时间值的字段或参数。

    如果这有帮助,请告诉我。

    【讨论】:

      【解决方案3】:

      编写一个自定义代码来计算两个日期之间的时间差,并返回一个字符串,如预期的 HH:MM 一样

          Public Function GetTimeDifference(ByVal dt1 AS DATETIME,ByVal dt2 AS DATETIME) AS String
          Dim Mn AS Integer=DateDiff("n",dt1,dt2)
          Dim HH AS Integer=Mn /60
          Dim MM AS Integer=Mn Mod 60
          Return HH.ToString() & ":" & MM.ToString()
          End Function
      

      现在将这个函数作为表达式调用

      =Code.GetTimeDifference(Parameters!startDate.Value,Parameters!endDate.Value)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-31
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-11
        • 2021-11-25
        相关资源
        最近更新 更多