Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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中正确显示时间跨度_Reporting Services_Ssrs 2012 - Fatal编程技术网

Reporting services 在SSRS中正确显示时间跨度

Reporting services 在SSRS中正确显示时间跨度,reporting-services,ssrs-2012,Reporting Services,Ssrs 2012,我的时间跨度值为00:02:02.0基本上为0小时2分2秒2毫秒 我将永远有0个小时。如何格式化SSR以读取2.02.0?我知道你可以做=场!然而,它总是产生#错误作为值 谢谢 您非常接近,ToString()是正确的,因为SSRS不知道如何处理时间跨度,但您需要在其周围包装一个格式,以使用格式字符串,并将其转换回日期以使用日期格式模式: =Format(CDate(Fields!FinishTime.Value.ToString()), "mm:ss:fff") 编辑: 如果您的数据集包含空

我的时间跨度值为
00:02:02.0
基本上为0小时2分2秒2毫秒

我将永远有0个小时。如何格式化SSR以读取2.02.0?我知道你可以做=场!然而,它总是产生#错误作为值


谢谢

您非常接近,
ToString()
是正确的,因为SSRS不知道如何处理时间跨度,但您需要在其周围包装一个
格式,以使用格式字符串,并将其转换回日期以使用日期格式模式:

=Format(CDate(Fields!FinishTime.Value.ToString()), "mm:ss:fff")
编辑

如果您的数据集包含空值,您将无法使用简单的
IIF(IsNothing(Fields!FinishTime.Value)、Nothing、)
,因为当它尝试对空值使用ToString()函数时,您将看到一个#错误。因此,请尝试一些自定义代码():

这样称呼它:

=IIF(IsNothing(Fields!FinishTime.Value), Nothing, Code.FormatTimeSpan(Fields!FinishTime.Value))

您已经非常接近了,
ToString()
是正确的,因为SSRS不知道如何处理时间跨度,但是您需要在其周围包装一个
格式
,以使用格式字符串,并将其转换回日期以使用日期格式模式:

=Format(CDate(Fields!FinishTime.Value.ToString()), "mm:ss:fff")
编辑

如果您的数据集包含空值,您将无法使用简单的
IIF(IsNothing(Fields!FinishTime.Value)、Nothing、)
,因为当它尝试对空值使用ToString()函数时,您将看到一个#错误。因此,请尝试一些自定义代码():

这样称呼它:

=IIF(IsNothing(Fields!FinishTime.Value), Nothing, Code.FormatTimeSpan(Fields!FinishTime.Value))

假设您使用的是SQL Server数据源,那么有一种更简单的方法来实现这一点。在SQL语句中,在选择FinishTime字段的地方使用以下命令:

SELECT Convert(datetime, TableName.FinishTime) AS FinishTime, ...

它可以很好地处理空值,并且您可以使用SSRS中的内置格式选项对其进行格式设置。

如果您使用的是SQL Server数据源,则有一种更简单的方法可以实现这一点。在SQL语句中,在选择FinishTime字段的地方使用以下命令:

SELECT Convert(datetime, TableName.FinishTime) AS FinishTime, ...

它可以很好地处理空值,您可以使用SSRS中的内置格式选项对其进行格式设置。

Nice!你如何处理时间混乱的情况?它显示了#70个结果中有2个是错误的,我尝试过=IIF(Len(Fields!FinishTime.Value)>1,“,格式(CDate(Fields!FinishTime.Value.ToString()),“mm:ss:f”)),但我仍然得到了错误,这取决于这两个结果返回给你的是什么。我想空值仍然会导致问题,因此您可以使用
IsNothing()
来检查这一点,但检查这些行的查询返回的内容可能是最简单的。stu-它是空值,但我必须返回这些行,IsNothing仍然会产生#ErrorNice!你如何处理时间混乱的情况?它显示了#70个结果中有2个是错误的,我尝试过=IIF(Len(Fields!FinishTime.Value)>1,“,格式(CDate(Fields!FinishTime.Value.ToString()),“mm:ss:f”)),但我仍然得到了错误,这取决于这两个结果返回给你的是什么。我想空值仍然会导致问题,因此您可以使用
IsNothing()
来检查这一点,但检查这些行的查询返回的内容可能是最简单的。stu-它是空值,但我必须返回这些行,IsNothing仍然会产生#错误