2011-11-13 71 views
0

用於查詢事件的數據我有一門課程日曆事件表如下(展示爲簡單起見,只有幾個記錄):SQL - 當前季度

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

回答

0

簡單,但速度慢的方法:

WHERE DATEPART(qq,startDate) = DATEADD(qq, 1,GETDATE()) AND YEAR(startDate) = 
YEAR(DATEADD(qq, 1,GETDATE())) 

慢我的意思是,即使你有(的startDate)的索引將不會被使用。

更好的解決方案是獲取下一季度的start_date和end_date。我可以看到許多方法。例如,您可以創建2個分別返回start_date和end_date的標量UDF。您還可以創建1個表值函數,該函數返回1列和2列,然後加入它。最後,您可以創建一個查找表並手動輸入未來幾年的開始/結束日期。

+0

酷,我用UDF選項,返回開始和結束日期,其餘很容易。乾杯! – user460114

0

創建一個名爲say Quarters的表,其中包含一個有用的ID,表示YYYYQQ,以及開始和結束日期,然後它是一個簡單的連接。

相關問題