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

Sql 从一周的第一天开始查找季度,sql,sql-server-2005,Sql,Sql Server 2005,我想从一周的第一天开始找25美分 例如,一周的第一天是2012年12月31日 我希望这个季度是2013年第一季度。但是,如果我发现Qtr是从2012年第4季度的具体日期开始的。我不确定这是否适用于您的所有情况,因此请使用不同的日期进行测试: DECLARE @date DATETIME SET @date = '2012-12-31' SELECT qtr = DATEPART(quarter, DATEADD(DAY, 7 - DATEPART(weekday, @Date), @

我想从一周的第一天开始找25美分

例如,一周的第一天是2012年12月31日


我希望这个季度是2013年第一季度。但是,如果我发现Qtr是从2012年第4季度的具体日期开始的。

我不确定这是否适用于您的所有情况,因此请使用不同的日期进行测试:

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

这是甲骨文-年度周表。。。我可以给你一些想法:

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

为什么2012年12月31日的季度必须是2013年第一季度?