обратный расчет week_ref назад к дате - PullRequest
0 голосов
/ 21 марта 2012

Как я могу отменить следующее, чтобы снова отобразить дату:

19 марта 2012 года вы должны указать недельную ссылку: 5855

РЕДАКТИРОВАТЬ: это правильная строка:

DATEDIFF(DAY, 0, Start_Week) / 7 AS week_ref   -- create the unique week reference number

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Как это:

select dateadd(wk, 5855, 0) 

или это:

select dateadd(wk,DATEDIFF(DAY, 0, Start_Week) / 7, 0)

РЕДАКТИРОВАТЬ:

WHERE DATEDIFF(DAY, 0, Start_Week) / 7 = 5855

Валидационный тест здесь:

SELECT 1  WHERE DATEDIFF(DAY, 0, getdate()) / 7 = 5855
0 голосов
/ 21 марта 2012

Учитывая значение 5855, вы можете добавить только 5855 x 7 дней до 01 января 1900 года. Точный день в текущей неделе будет потерян.

С 19000101 года существует 40987 дней, но 5855* 7 равно 40985. Таким образом, вы "потеряли" 2 дня.

SELECT DATEADD(week, 5855, 0) -- gives 20120319

Или, если знаете, сохранили значение дня

SELECT DATEADD(day, 40987, 0) -- gives 20120321
...