日期和时间的单独参数

时间:2013-01-21 11:18:01

标签: ssrs-2008

我想在报告中使用一个参数作为日期,另一个参数用于时间,如下所示。 开始时间[16/01/2012][12.00 am]

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

当然这是一个多步骤的过程:

  1. 将TEXT变量设置为'DATE'作为变量值并提示
  2. 将左侧窗格中的“默认值”设置为“1/16/2012”
  3. 将TEXT变量设置为'TIME'作为变量值并提示
  4. 将左侧窗格中的“默认值”设置为“00:00”
  5. 设置数据集'AvailableDateTime',将两者合并为合法的日期时间字段:

    SELECT        CAST(@Date + ' ' + @Time AS DateTime) AS Datetime
    
  6. 将DATETIME的第三个变量设置为'DATETIME'作为变量值并提示。

  7. 设置此变量以使用属性左窗格中的“可用值”为“从查询中获取值”。使用步骤5中的数据集。
  8. 您现在已经为数据和时间设置了单独的字段。

    进一步考虑避免用户输入错误。您可能希望将第一个变量与您在可用值中设置的值或查询中的值相关联。问题在于,如果用户指责它不会运行的日期或时间,因为系统只是尝试组合两个字符串并使其超出日期时间。您可能希望直接从getgo的查询中列出值。

    编辑改变第一个两个变量:

    1. 您可以将第一个变量设置为datetime,为最终用户提供日历。
    2. 您可以设置第二个数据集以获得最终用户的可用时间:

      declare @time table ( tm int)
      
      declare @cursor int = 0
      
      while @cursor <= 23
      Begin
          insert into @time values (@cursor)
      
          set @cursor += 1
      End
      
      select cast(CAST(tm as varchar) + ':00' as time) as HourOfTheDay
      from @time
      
    3. 设置第二个变量,以便从上面第2步中的查询中获取值。

    4. 您现在应该能够将值放在一起,如上所述。

答案 1 :(得分:1)

正如我在评论中所说,SSRS不允许您为DateTime分别设置参数。 它只有一个参数Date/Time

我认为你有两种选择。

  1. 添加文本参数并将其视为时间。那你可以做 根据您使用的技术进行一些验证。
  2. 解决此问题的另一种方法是创建可能的列表 值。例如,您选择Integer类型,然后创建一个列表 Available Values。 (见图)
  3. enter image description here

    enter image description here