Reporting services 如何在SSRS中将较大的时间跨度值转换为(小时:分钟:秒)?

Reporting services 如何在SSRS中将较大的时间跨度值转换为(小时:分钟:秒)?,reporting-services,ssrs-2008,time-format,Reporting Services,Ssrs 2008,Time Format,在reporting services字段中,我有一个列值为2.23:48:50(天.小时:分钟:秒) 我尝试使用以下代码进行转换: (字段!小时接近值/60)+:“+(字段!小时接近值-((字段!小时接近值/60)*60)+”:00 及 格式(DateAdd(“s”),(TimeSpan.FromTicks(总和(字段!小时逼近值))),“00:00:00”),“HH:mm:ss”) 但它不起作用 我需要将其显示为71:48:50 在Reporting Services中如何做到这一点?不幸的

在reporting services字段中,我有一个列值为
2.23:48:50
(天.小时:分钟:秒)

我尝试使用以下代码进行转换:

(字段!小时接近值/60)+:“+(字段!小时接近值-((字段!小时接近值/60)*60)+”:00

格式(DateAdd(“s”),(TimeSpan.FromTicks(总和(字段!小时逼近值))),“00:00:00”),“HH:mm:ss”)

但它不起作用

我需要将其显示为
71:48:50


在Reporting Services中如何做到这一点?

不幸的是,您的要求非常困难:

  • 根据不同的分隔符将字符串拆分为三个组件
  • 将各种组件转换为整数,并对其应用算术运算
  • 连接所有不同的组件以获得一个调整后的字符串
  • 基于此,以下表达式将起作用:

    =CInt(Left(Fields!hrs_apprvd.Value, InStr(Fields!hrs_apprvd.Value, ".") - 1))
      * 24
      + CInt(Mid(Fields!hrs_apprvd.Value
        , InStr(Fields!hrs_apprvd.Value, ".") + 1
        , InStr(Fields!hrs_apprvd.Value, ":") - InStr(Fields!hrs_apprvd.Value, ".") - 1))
      & ":" & Right(Fields!hrs_apprvd.Value
          , Len(Fields!hrs_apprvd.Value) - InStr(Fields!hrs_apprvd.Value, ":"))
    

    这适用于您的一个示例,但您可能需要稍微调整以适应更大的数据集

    您还可以通过为较小的表达式(如
    Left(fields!hrs\u appvd.Value,InStr(fields!hrs\u appvd.Value,“.”)-1)添加一组计算字段来简化表达式,然后在表表达式中引用计算字段


    您可以看到表达式很快变得复杂-应用SSR的转换也值得研究。

    不幸的是,您的需求非常困难:

  • 根据不同的分隔符将字符串拆分为三个组件
  • 将各种组件转换为整数,并对其应用算术运算
  • 连接所有不同的组件以获得一个调整后的字符串
  • 基于此,以下表达式将起作用:

    =CInt(Left(Fields!hrs_apprvd.Value, InStr(Fields!hrs_apprvd.Value, ".") - 1))
      * 24
      + CInt(Mid(Fields!hrs_apprvd.Value
        , InStr(Fields!hrs_apprvd.Value, ".") + 1
        , InStr(Fields!hrs_apprvd.Value, ":") - InStr(Fields!hrs_apprvd.Value, ".") - 1))
      & ":" & Right(Fields!hrs_apprvd.Value
          , Len(Fields!hrs_apprvd.Value) - InStr(Fields!hrs_apprvd.Value, ":"))
    

    这适用于您的一个示例,但您可能需要稍微调整以适应更大的数据集

    您还可以通过为较小的表达式(如
    Left(fields!hrs\u appvd.Value,InStr(fields!hrs\u appvd.Value,“.”)-1)添加一组计算字段来简化表达式,然后在表表达式中引用计算字段


    您可以看到表达式很快变得复杂-应用SSR的转换也值得研究。

    不幸的是,您的需求非常困难:

  • 根据不同的分隔符将字符串拆分为三个组件
  • 将各种组件转换为整数,并对其应用算术运算
  • 连接所有不同的组件以获得一个调整后的字符串
  • 基于此,以下表达式将起作用:

    =CInt(Left(Fields!hrs_apprvd.Value, InStr(Fields!hrs_apprvd.Value, ".") - 1))
      * 24
      + CInt(Mid(Fields!hrs_apprvd.Value
        , InStr(Fields!hrs_apprvd.Value, ".") + 1
        , InStr(Fields!hrs_apprvd.Value, ":") - InStr(Fields!hrs_apprvd.Value, ".") - 1))
      & ":" & Right(Fields!hrs_apprvd.Value
          , Len(Fields!hrs_apprvd.Value) - InStr(Fields!hrs_apprvd.Value, ":"))
    

    这适用于您的一个示例,但您可能需要稍微调整以适应更大的数据集

    您还可以通过为较小的表达式(如
    Left(fields!hrs\u appvd.Value,InStr(fields!hrs\u appvd.Value,“.”)-1)添加一组计算字段来简化表达式,然后在表表达式中引用计算字段


    您可以看到表达式很快变得复杂-应用SSR的转换也值得研究。

    不幸的是,您的需求非常困难:

  • 根据不同的分隔符将字符串拆分为三个组件
  • 将各种组件转换为整数,并对其应用算术运算
  • 连接所有不同的组件以获得一个调整后的字符串
  • 基于此,以下表达式将起作用:

    =CInt(Left(Fields!hrs_apprvd.Value, InStr(Fields!hrs_apprvd.Value, ".") - 1))
      * 24
      + CInt(Mid(Fields!hrs_apprvd.Value
        , InStr(Fields!hrs_apprvd.Value, ".") + 1
        , InStr(Fields!hrs_apprvd.Value, ":") - InStr(Fields!hrs_apprvd.Value, ".") - 1))
      & ":" & Right(Fields!hrs_apprvd.Value
          , Len(Fields!hrs_apprvd.Value) - InStr(Fields!hrs_apprvd.Value, ":"))
    

    这适用于您的一个示例,但您可能需要稍微调整以适应更大的数据集

    您还可以通过为较小的表达式(如
    Left(fields!hrs\u appvd.Value,InStr(fields!hrs\u appvd.Value,“.”)-1)添加一组计算字段来简化表达式,然后在表表达式中引用计算字段

    你可以看到这个表达式很快变得复杂——应用SSR的转换也值得研究