SQL-查询当前季度的事件数据

SQL-查询当前季度的事件数据,sql,sql-server-2005,Sql,Sql Server 2005,为了简单起见,我有一个课程日历事件表,如下所示,只显示了一些记录: calendarItemID classID startDate startTime endTime ---------------------------------------------------------- 1 1 2011-11-24 7pm 9pm 2 2 2011-11-02 7pm

为了简单起见,我有一个课程日历事件表,如下所示,只显示了一些记录:

calendarItemID   classID   startDate   startTime   endTime
----------------------------------------------------------
1                1         2011-11-24  7pm         9pm
2                2         2011-11-02  7pm         9pm
3                1         2011-11-25  7pm         9pm 
我需要一个返回下一季度而不是当前季度课程的查询。是否有SQL函数可以提供帮助和/或这是计算当前季度的日期并查看StartDate是否符合这些日期的情况。如果可能的话,我正在寻找最优雅的方式

提前谢谢!
Paul

创建一个名为say Quarters的表,其中包含一个有用的ID,比如yyyqq,以及开始和结束日期,然后它就是一个简单的联接。

简单但缓慢的方法:

WHERE DATEPART(qq,startDate) = DATEADD(qq, 1,GETDATE()) AND YEAR(startDate) = 
YEAR(DATEADD(qq, 1,GETDATE()))
我的意思是,即使你在开始日期有一个索引,它也不会被使用


更好的解决方案是获得下一季度的开始日期和结束日期。我可以找到很多方法来做到这一点。例如,您可以创建两个标量UDF,分别返回开始日期和结束日期。您还可以创建1个表值函数,该函数返回1行2列,然后将其联接。最后,您只需创建一个查找表并手动输入未来几年的开始/结束日期。

很酷,我使用了UDF选项,返回开始和结束日期,其余的都很简单。干杯