【问题标题】:SSRS - Passing one date parameter and using it as betweenSSRS - 传递一个日期参数并在两者之间使用它
【发布时间】:2013-10-21 10:58:33
【问题描述】:

您好,我正在处理一份 SSRS 报告,其中我将使用此示例格式 7/6/2013 将日期从一份报告传递到另一份报告,我的问题是我将其用于第二份报告,如下所示:

select recordnumber, employeename, empolyeeID, team, step, QA, convert(char(10), hireDate, 120) as hireDate, EmpStatus,Comments, convert(char(10), AssignDate, 120) as AssignDate
from tblQMRoster tr
inner join tblQATeamMaster tm
On tr.QAMemberID = tm.QAMemberID
inner join tblStepMaster sm
ON sm.stepDesc = tr.step
where sm.stepid = @StepID and tr.QAMemberID = @QAMemberID
and AssignDate like between  @Assigneddate and @AssignedDate

我已经尝试过像 @AssignDate + '%' 这样的 AssignedDate,因为当我点击报告中的链接时,我只获得了一天的数据,但问题是我得到了我的参数未涵盖的所有报告.

【问题讨论】:

  • AssignDate 列和@AssignedDate 参数的数据类型是什么? datedatetimevarchar / string?
  • 我将它转换为 nvarchar,因为如果它的日期不能像这样使用..
  • 为什么不用两个参数来表示 between
  • 因为我只是从其他报告中传递过去的日期

标签: sql reporting-services ssrs-2008


【解决方案1】:

你不能直接使用:

AND     AssignDate >= @Assigneddate 
AND     AssignDate < DATEADD(DAY, 1, @AssignedDate)

关于该主题的两篇文章非常值得一读:

What do BETWEEN and the devil have in common?

Bad habits to kick : mis-handling date / range queries

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多