Sql 将周参考计算转回当前日期

Sql 将周参考计算转回当前日期,sql,sql-server,sql-server-2008,tsql,datediff,Sql,Sql Server,Sql Server 2008,Tsql,Datediff,如何反转以下内容,使其再次显示日期: 2012年3月19日应该给你一周时间:5855 编辑:这是正确的一行: DATEDIFF(DAY, 0, Start_Week) / 7 AS week_ref -- create the unique week reference number 像这样: select dateadd(wk, 5855, 0) 或者这个: select dateadd(wk,DATEDIFF(DAY, 0, Start_Week) / 7, 0) 编辑: 此处的

如何反转以下内容,使其再次显示日期:

2012年3月19日应该给你一周时间:5855

编辑:这是正确的一行:

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

select dateadd(wk, 5855, 0) 
或者这个:

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

此处的验证测试:

SELECT 1  WHERE DATEDIFF(DAY, 0, getdate()) / 7 = 5855

如果值为5855,则只能将5855 x 7天周期添加回1900年1月1日。本周的准确日期将丢失

自19000101起有40987天,但5855*7是40985。所以你已经“失去”了2天

或者,如果您知道保留了日值

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

你的意思是从第5855周再次获取“月日”的准确值?不,我的意思是我想看到2012年3月19日或2012年3月19日。我试图将此语句放在where子句之后。我该怎么做呢?谢谢,但我得到了“在预期条件的上下文中指定的非布尔类型的表达式,靠近'AND'”@sp-1986我更改了脚本。但这个问题将出现在代码的其他地方。如我在回答中所述,我如何将其放在where条款中?
SELECT DATEADD(week, 5855, 0) -- gives 20120319
SELECT DATEADD(day, 40987, 0) -- gives 20120321