我有一个课程日历事件表如下(为简单起见,仅显示几条记录):
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
我需要一个返回UPCOMING QUARTER(不是当前季度)课程的查询。是否有一个SQL函数可以提供帮助和/或这是一个计算当前季度的日期并查看StartDate是否适合这些日期的情况。如果可能的话,我正在寻找最优雅的方式。
提前致谢! 保罗
答案 0 :(得分:0)
创建一个名为“说Quarters”的表,其中包含一个有用的ID,例如YYYYQQ,以及一个开始和结束日期,然后它就是一个简单的连接。
答案 1 :(得分:0)
直截了当,但进展缓慢:
WHERE DATEPART(qq,startDate) = DATEADD(qq, 1,GETDATE()) AND YEAR(startDate) =
YEAR(DATEADD(qq, 1,GETDATE()))
慢一点我的意思是即使你有一个索引(startDate)它也不会被使用。
更好的解决方案是在下一季度获得start_date和end_date。我可以看到很多方法。例如,您可以创建2个标量UDF,分别返回start_date和end_date。您还可以创建1个表值函数,该函数返回包含2列的1行,然后将其加入。最后,您可以创建一个查找表并手动输入未来几年的开始/结束日期。