从一周的第一天开始查找季度

时间:2013-01-11 19:20:58

标签: sql sql-server-2005

我试图从一周的第一天找到季度。

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

我希望本季度能够说明2013年第一季度。但如果我从特定日期发现QTR,那就是2012年第四季度。

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分:0)

这是针对Oracle - 年度周表......可能会给你一些想法:

-- 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
  )
 )
/