0

週の最初の日から四半期を見つけようとしています。

たとえば、週の最初の日は12/31/2012

四半期に2013年第1四半期と言いたいのですが、特定の日付からのQtrを見つけると、2012年第4四半期と表示されます。

4

2 に答える 2

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
  )
 )
/
于 2013-01-11T21:54:31.380 に答える
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))
于 2013-01-11T19:47:48.637 に答える