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

标签 datetime time format ssrs-2008 reporting-services

我想在SSRS报告中显示持续时间
我的数据库字段是SQL中的时间。它在SSRS中转换Timespan。

格式为:1:00 PM-3:50 PM

我怎样才能做到这一点 ?

Fields!StartTime.Value.ToString() + " PM - "  + 
       Fields!EndTime.Value.ToString() + " PM" is not working..

最佳答案

这是借助SSRS中的Custom code实现此目的的一种可能方法。以下示例不涉及创建SSRS报告的详细信息,但应说明如何在SSRS中实现时间格式。

分步过程:

  • 使用 SQL脚本下提供的脚本创建一个名为dbo.Timespans的表。如截图# 1 所示,用一些数据填充它。
  • 创建一个SSRS报告,并使用表dbo.Timespans作为数据源。请参阅屏幕快照# 2
  • 单击Report菜单,然后选择Report Properties。选择左侧部分的Code标签。
  • 在“自定义代码”文本框中的“SSRS自定义代码”部分下粘贴给定的代码。单击确定。此代码采用timeSpan值和format字符串。然后,它将格式化时间数据并以字符串形式返回。请参阅屏幕快照# 3
  • 右键单击时间列,然后选择Expression...将表达式 =Code.FormatTimeSpan(Fields!StartTime.Value, "hh:mm tt") + " - " + Code.FormatTimeSpan(Fields!EndTime.Value, "hh:mm tt") 粘贴到Set expression for: Value文本框中。请参阅屏幕截图# 4 和# 5
  • 屏幕快照# 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
    

    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
    

    截图#1:

    截屏2:

    截屏#3:

    截图#4:

    截屏#5:

    截图#6:

    关于datetime - 如何在SSRS报告中以给定的字符串格式显示时间值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6305106/

    相关文章:

    windows - 在 Go 中将窗口刻度转换为 UNIX 时间戳

    python - 将日期时间对象与 8601 字符串进行比较会给出错误的结果,为什么允许这样做?

    python - 如何创建一个 tzinfo 设置为 'UTC' 的日期时间对象?

    datetime - 对 Date 对象使用 Groovy 比较运算符

    来自日期格式的 Swift 3 链接

    Git 日志 --pretty : Only include author first name (not family name)

    python - Pandas DF 列标题与列不对齐

    python - 如何在 Python 中将字符串日期时间转换为时间戳?

    python-闹钟建议

    c# - 如何记录计算机之间的相对时间?