我试图从一周的第一天开始找到季度。
例如,一周的第一天是12/31/2012
我希望该季度说 2013 年第一季度。但如果我从特定日期找到 Qtr,它会说 2012 年第四季度。
我试图从一周的第一天开始找到季度。
例如,一周的第一天是12/31/2012
我希望该季度说 2013 年第一季度。但如果我从特定日期找到 Qtr,它会说 2012 年第四季度。
这是给 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))