週の最初の日から四半期を見つけようとしています。
たとえば、週の最初の日は12/31/2012
四半期に2013年第1四半期と言いたいのですが、特定の日付からのQtrを見つけると、2012年第4四半期と表示されます。
週の最初の日から四半期を見つけようとしています。
たとえば、週の最初の日は12/31/2012
四半期に2013年第1四半期と言いたいのですが、特定の日付からのQtrを見つけると、2012年第4四半期と表示されます。
これは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
)
)
/
これがあなたのケースのすべての状況でうまくいくかどうかはわかりませんので、別の日付でテストしてください:
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))