Как вы можете получить предыдущий номер недели (и номер года) с данного года и номера недели?Получить номер предыдущей недели с данного года и недели Номер
например.
declare @year int = 2014;
declare @week int = 53;
Я хочу, чтобы 2014 и 52.
Как вы можете получить предыдущий номер недели (и номер года) с данного года и номера недели?Получить номер предыдущей недели с данного года и недели Номер
например.
declare @year int = 2014;
declare @week int = 53;
Я хочу, чтобы 2014 и 52.
Как @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';
Спасибо @austin, ваш ответ почти есть, но 2000, 2028, 2056, 2084 ... все имеют 54 недели. С СУБД, которую я использую, является Microsoft SQL Server. – user3929593
Извините за поздний ответ, но что-то похожее на отредактированный код может сработать для вас –
'@Year = если @week> 1, то @Year еще @Year - 1 end'' @week = если @week = 1, то 53 еще @week - 1 end' ?? –
Какие СУБД вы используете? Чего вы ТОЧНО хотите сделать? Поскольку, поскольку вопрос указан, у меня может возникнуть соблазн ответить @week - 1;) (конечно, если не работает на неделю 1 ...). – AFract