2015-01-08 3 views
0

Как вы можете получить предыдущий номер недели (и номер года) с данного года и номера недели?Получить номер предыдущей недели с данного года и недели Номер

например.

declare @year int = 2014; 
declare @week int = 53; 

Я хочу, чтобы 2014 и 52.

+0

'@Year = если @week> 1, то @Year еще @Year - 1 end'' @week = если @week = 1, то 53 еще @week - 1 end' ?? –

+0

Какие СУБД вы используете? Чего вы ТОЧНО хотите сделать? Поскольку, поскольку вопрос указан, у меня может возникнуть соблазн ответить @week - 1;) (конечно, если не работает на неделю 1 ...). – AFract

ответ

0

Как @AFract упоминались, в зависимости от того, что RDBMS вы используете, вы можете сделать это.

DECLARE @year int; 
DECLARE @week int; 
DECLARE @date datetime; 

SET @year = 2014; 
SET @week = 53; 
SET @date = '01/01/' + CAST (@year AS varchar) ; 
SET @date = DATEADD (week , @week - 2 , @date) ; 

SELECT DATEPART (year , @date) AS 'Year' , 
     DATEPART (week , @date) AS 'Week'; 
+0

Спасибо @austin, ваш ответ почти есть, но 2000, 2028, 2056, 2084 ... все имеют 54 недели. С СУБД, которую я использую, является Microsoft SQL Server. – user3929593

+0

Извините за поздний ответ, но что-то похожее на отредактированный код может сработать для вас –

Смежные вопросы