我正在尝试创建一个报告,该报告为我在特定日期的周,月和季度发生的事件提供编号。
几周和几个月我都能这么做,但是季度问题。我想要特定年份的四分之一的结果 - 如下面的例子中仅2016年。
例如
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
答案 0 :(得分:2)
您可以尝试添加年度条件:
[...] AND datepart(year, event_DATE) = datepart(year, @date)
您的查询看起来像
SELECT case_id, event_date
FROM #total
WHERE datepart(quarter, event_DATE) = datepart(quarter, @date)
AND datepart(year, event_DATE) = datepart(year, @date)
ORDER BY 2
答案 1 :(得分:0)
`RRULE:FREQ=MONTHLY;UNTIL=20170630T000000;BYDAY=1FR`