Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 如何在SSRS 2008中以HH:MM:SS格式显示超过24小时_Reporting Services_Ssrs 2008 - Fatal编程技术网

Reporting services 如何在SSRS 2008中以HH:MM:SS格式显示超过24小时

Reporting services 如何在SSRS 2008中以HH:MM:SS格式显示超过24小时,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我在SSRS2008中有一个报告,它从一个表中提取数据,表中有一列TotalTime,它是以秒为单位的整数值 在表达式中使用时显示: =Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss") 从这里得到: 现在,当该值超过24小时时,它会产生一种模块值。我的意思是:如果值是29小时,而不是显示29:00:00,它将显示05:00:00。如果该值为51小时,则显示03:00:00减去48小时 我如何解决这个问题 谢

我在SSRS2008中有一个报告,它从一个表中提取数据,表中有一列TotalTime,它是以秒为单位的整数值

在表达式中使用时显示:

=Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss")
从这里得到:

现在,当该值超过24小时时,它会产生一种模块值。我的意思是:如果值是29小时,而不是显示29:00:00,它将显示05:00:00。如果该值为51小时,则显示03:00:00减去48小时

我如何解决这个问题


谢谢

一天有86400秒。因此,如果秒数大于天数,则使用天:

=IIF(Fields!TotalTime.Value < 86400, 
    Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss"), 
    Floor(Fields!TotalTime.Value / 86400) & " days, " & Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss")

一天有86400秒。因此,如果秒数大于天数,则使用天:

=IIF(Fields!TotalTime.Value < 86400, 
    Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss"), 
    Floor(Fields!TotalTime.Value / 86400) & " days, " & Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss")

对于HH:mm:ss格式,您可以使用:

=Floor(Fields!TotalTime.Value / 3600) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00"), "mm:ss")
Floor(Fields!TotalTime.Value / 86400) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss")
在这种情况下,例如90000秒将显示为:25:00:00

对于DD:HH:mm:ss格式,请使用以下命令:

=Floor(Fields!TotalTime.Value / 3600) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00"), "mm:ss")
Floor(Fields!TotalTime.Value / 86400) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss")

90000秒将显示为:1:01:00:00

对于HH:mm:ss格式,您可以使用:

=Floor(Fields!TotalTime.Value / 3600) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00"), "mm:ss")
Floor(Fields!TotalTime.Value / 86400) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss")
在这种情况下,例如90000秒将显示为:25:00:00

对于DD:HH:mm:ss格式,请使用以下命令:

=Floor(Fields!TotalTime.Value / 3600) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00"), "mm:ss")
Floor(Fields!TotalTime.Value / 86400) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00:00"), "HH:mm:ss")

90000秒将显示为:1:01:00:00

您确实需要使用基于小时的解决方案,基于天的解决方案可能会让您在夏令时转换中遇到麻烦

=Floor(Fields!TotalTime.Value / 3600) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00"), "mm:ss")

你真的需要使用以小时为基础的解决方案,以天为基础的解决方案可能会给你带来夏令时转换的麻烦

=Floor(Fields!TotalTime.Value / 3600) &":"& Format(DateAdd("s", Fields!TotalTime.Value, "00:00"), "mm:ss")

为什么不加上天数?为什么不加上天数?顺便说一句,克里斯,也许你也知道这个!顺便说一句,克里斯,也许你也知道这个!这正是@Konza发布的答案。这正是@Konza发布的答案。