我正在尝试创建一个报告,该报告给出了发生在特定日期的周,月和季度中的事件的编号。
我已经能够这样做了几个星期和几个月,但与季度有问题。我希望在特定年份的季度中获得结果,例如2016年的例子。特定年份的sql日期四月份
例如
declare @date date set @date = '2016/02/30'
select case_id, event_date
from #total
WHERE datepart(quarter, event_DATE) = datepart(quarter, @date)
order by 2
当我使用此代码它给我造成的不仅是2016年,但也为2015,2014(往年)相同的四
。
case_id event_date
1234 1986-02-06
5567 2014-01-04
3456 2015-03-11
6378 2016-02-23
4789 2016-02-06
6782 2016-01-04
2346 2016-03-11
9098 2016-02-23
我想要的只是2016年而不是前几年。
case_id event_date
4789 2016-02-06
6782 2016-01-04
2346 2016-03-11
9098 2016-02-23
你需要匹配'DATEPART(年,...) '以及。 Q1等出现在每年。 – Richard
尽管总的来说你想[在'where子句中]避免函数(https://www.mssqltips.com/sqlservertutorial/3204/avoid-using-functions-in-where-clause/)。建立一个日期表并将其加入到该表中。 – iamdave
感谢您的修改。 –