Reporting services SSRS(Visual Studio):使用日期/时间参数时,报表不返回任何行

Reporting services SSRS(Visual Studio):使用日期/时间参数时,报表不返回任何行,reporting-services,Reporting Services,如果我在数据集SQL中使用此选项: DECLARE @StartDate DATE = '2017-01-01' DECLARE @EndDate DATE = '2017-03-01' 报告将运行并返回预期的数据 当我将上述代码更改为: DECLARE @StartDate DATE DECLARE @EndDate DATE 我习惯于VisualStudio检测我有两个日期变量并创建两个日期参数。但在这种情况下,参数不会自动创建。因此,我自己创建参数-作为日期/时间 但是

如果我在数据集SQL中使用此选项:

DECLARE @StartDate DATE = '2017-01-01'
DECLARE @EndDate   DATE = '2017-03-01'
报告将运行并返回预期的数据

当我将上述代码更改为:

DECLARE @StartDate DATE    
DECLARE @EndDate   DATE
  • 我习惯于VisualStudio检测我有两个日期变量并创建两个日期参数。但在这种情况下,参数不会自动创建。因此,我自己创建参数-作为日期/时间

  • 但是。。。当报表运行时,我没有得到任何数据

  • SSRS从日历选择中显示的日期为m/d/y[3/1/2017]格式

    用于与@StartDate和@EndDate进行比较的数据库字段是SQL Server日期时间字段

    这是一个在SQL中如何使用日期参数的示例:

    WHERE 
      a.SomeDate >= @StartDate
      AND a.SomeDate < DATEADD(dd,1,@EndDate)
    
    在哪里
    a、 SomeDate>=@StartDate
    和a.SomeDate
    我创建的其他报告: 1.保存数据集后自动创建两个日期参数。 2.使用日期参数按预期返回数据


    如果有任何建议,我将不胜感激。请让我知道,如果有更多的信息,我可以提供,将有助于您帮助我

    编写数据集查询时,不应声明参数。如果您声明它们,SSRS将假定它们是本地的


    参数数据类型是根据使用情况推断出来的,但您可以在以后将其更改为您需要的任何类型。

    我个人会使用Profiler查看在您尝试运行报告时向数据库发送的确切代码。这可能会向您显示问题所在。您还可以从一个正在工作的分析器中获取探查器信息,看看是否可以看到参数数据发送方式的差异。谢谢@HLGEM。我从未使用过分析器。这是我可以在VisualStudio中使用的东西吗?还是SSMS工具?如果有任何信息,我将不胜感激。再次感谢!它是SQL Server附带的独立工具。如果您将其包括在安装中,它应该在您的程序列表中。如果没有,那么您需要返回并从安装磁盘获取它。它使用内存,因此请确保仅在dev或QA上运行它,然后在完成后关闭跟踪。谢谢@P.Kouvarakis。我应该知道这一点!我一拿出Declare语句,Visual Studio就创建了两个参数[我将其从文本更改为日期/时间。非常感谢!!