2013-01-11 97 views
0

我想從本週的第一天起查找季度。從第一天的第一天開始查找季度

例如,一週的第一天是12/31/2012

我想季說2013年Q1但是,如果我從特定日期找到QTR它說,2012年第四季度

+0

爲什麼季度必須是2013年第一季度的2012年12月31日? –

回答

0

我不知道這會在你的情況下,所有的情況下工作,所以請用不同的日期測試出來:

DECLARE @date DATETIME 
SET @date = '2012-12-31' 

SELECT 
    qtr = DATEPART(quarter, DATEADD(DAY, 7 - DATEPART(weekday, @Date), @date)), 
    YearNum = DATEPART(YEAR, DATEADD(DAY, 7 - DATEPART(weekday, @Date), @date)) 
0

這是甲骨文 - 年度周表...可能會給你一些想法:

-- ISO_WK# -- 
SELECT mydate 
    , TRUNC(mydate, 'w') wk_starts 
    , TRUNC(mydate, 'w') + 7 - 1/86400 wk_ends 
    , TO_NUMBER (TO_CHAR (mydate, 'IW')) ISO_wk# 
FROM 
(
SELECT TRUNC(SYSDATE, 'YEAR')-1 + LEVEL AS mydate -- 1st day of yr-1 day -- 
    FROM dual 
CONNECT BY LEVEL <= 
    (-- First day of curr year – first day of past year -- 
    SELECT TRUNC(SYSDATE, 'YEAR')-TRUNC(ADD_MONTHS (SYSDATE, -12), 'YEAR') "Num of Days" 
    FROM dual 
) 
) 
/