SSRS格式秒作为时间(负秒)

时间:2014-11-03 08:55:42

标签: reporting-services time format

我有一个带整数的列:TotalSec有秒。它可以是0,负数或正数。

我必须在报告中格式化这些秒。但是不能让某些东西在负面的时间内起作用。

我的逻辑: 对于0 =没什么, 正格式为HH:mm:ss 对于负 - ABS,然后将值格式化为-HH:mm:ss

=IIF(SUM(Fields!TotalSec.Value)=0, Nothing, IiF(SUM(Fields!TotalSec.Value)>0,
Format(DateAdd("s",SUM(Fields!TotalSec.Value), "00:00:00"), "HH:mm:ss"), "-" & Format(DateAdd("s",ABS(SUM(Fields!TotalSec.Value)), "00:00:00"), "HH:mm:ss")))

我得到负数的#Error。警告:

Warning 2   [rsRuntimeErrorInExpression] The Value expression for the textrun ‘TotalSec.Paragraphs[0].TextRuns[0]’ contains an error: The added or subtracted value results in an un-representable DateTime.  Parameter name: value

2 个答案:

答案 0 :(得分:0)

它的工作原理如下:

=IIF(SUM(Fields!TotalSec.Value)=0,Nothing,IIF(SUM(Fields!TotalSec.Value)< 0,"-"&Format(DateAdd("s",ABS(SUM(Fields!TotalSec.Value)), "00:00:00"), "HH:mm:ss"),Format(DateAdd("s",ABS(SUM(Fields!TotalSec.Value)), "00:00:00"), "HH:mm:ss")))

答案 1 :(得分:0)

我清理了上一个答案:

=IIf(Fields!elapsed.Value < 0, "-", "+")
&
Format(
    DateAdd(
        "s",
        Abs(Fields!elapsed.Value),
        "00:00:00"
    ),
    "HH:mm:ss" ' can be m:ss
)

"+"是为了保持结果排成一行,如果需要,可以用""替换。