如何在SSRS报告中以给定的字符串格式显示时间值?

Tou*_*eef 6 format time datetime reporting-services ssrs-2008

我想在SSRS报告中显示持续时间我的DB字段是SQL中的时间.它在SSRS中转换Timespan.

格式为:下午1:00 - 下午3:50

我怎样才能做到这一点 ?

Fields!StartTime.Value.ToString() + " PM - "  + 
       Fields!EndTime.Value.ToString() + " PM" is not working..
Run Code Online (Sandbox Code Playgroud)

小智 16

这是Custom code在SSRS 的帮助下实现这一目标的一种可能方式.下面的示例没有详细介绍如何创建SSRS报告,但应该了解如何在SSRS中实现时间格式化.

分步过程:

  1. dbo.Timespans使用SQL Scripts下提供的脚本创建一个名为的表.用一些数据填充它,如屏幕截图#1所示.

  2. 创建SSRS报告并使用该表dbo.Timespans作为数据源.参见截图#2.

  3. 单击Report菜单并选择Report Properties.选择Code左侧部分的选项卡.

  4. 将自定义代码文本框中SSRS自定义代码部分下给出的代码粘贴.单击确定.此代码采用timeSpan值和format字符串.然后它将格式化时间数据并作为字符串返回.参见截图#3.

  5. 右键单击时间列,然后选择在文本框中Expression...粘贴表达式.参考屏幕截图#4和#5.=Code.FormatTimeSpan(Fields!StartTime.Value, "hh:mm tt") + " - " + Code.FormatTimeSpan(Fields!EndTime.Value, "hh:mm tt")Set expression for: Value

  6. 屏幕截图#6显示了报告的执行情况.

希望有所帮助.

SQL脚本:

CREATE TABLE [dbo].[Timespans](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [StartTime] [time](7) NULL,
    [EndTime] [time](7) NULL,
CONSTRAINT [PK_Timespans] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)

SSRS自定义代码:

public function FormatTimeSpan(timeSpanValue as TimeSpan, format as string) as string
    Dim dateValue as DateTime
    dateValue = new DateTime(timeSpanValue.Ticks)
    return dateValue.ToString(format)
end function
Run Code Online (Sandbox Code Playgroud)

截图#1:

1

截图#2:

2

截图#3:

3

截图#4:

4

截图#5:

五

截图#6:

6