获取日期限制SQL

时间:2014-06-09 20:19:14

标签: sql sql-server date limit

所以我要做的是获得每个月的总资助合同,然后是12个月末的年度。所以我已经离开并成功完成了这项工作。

问题是我希望日期具体。我的具体日期是什么意思是我希望所有合约仅在2014年期间。此外,我希望用户看到过去几个月的意思,让我们说我们在六月,所以用户可以看到任何其他月份,直到一月。那是因为那些月份过去了,并且在2014年之内。让我们说我们去7月份,我们不认为会看到7月因为我们还在6月份。但是,一旦我们在八月,我们将能够看到七月份的资助合同。所以,我不想要当月。但只能到上个月的最后一天。

这是我克劳斯的地方。我对我如何进入Where Claus for Date功能感到有些困惑。 我正在使用报表生成器,所以有人可以帮助我使用表达式或查询。它的运行良好只是没有表现出与当月的限制。我的意思是它将显示我不想要的未来几个月。我正在使用Report Builder。我有3个参数。 @ BeginDate,@ EndDate和@program是一个下拉菜单,可以让用户选择他们想要的公司。 谢谢你的任何帮助将不胜感激

FROM tdealer a JOIN tContact b ON a.contact_id = b.contact_id 
JOIN tContract c ON a.dealer_id = c.dealer_id 
JOIN tCompany d ON c.company_id = d.company_id
WHERE YEAR(c.Funded_date) = @Year 
  AND c.Funded_date >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-4, 0) 
  AND c.Funded_date < DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-1, 0) 
  and c.program_id = @program 
  And c.funded_date Between @Begin_Date And @End_Date 
  AND @Begin_Date < GETDATE() AND @End_Date < GETDATE()
GROUP BY
  d.name,
  a.dealer_code,
  b.last_name,
  b.city,
  b.state,
  b.phone
end

1 个答案:

答案 0 :(得分:0)

我会尝试:

年份(c.Funded_date)= @年和月(c.funded_date)&lt; =月(getdate())

这只会返回@year年份以及当月或更早年份的funding_date行。