3

我试图弄清楚如何将一周的日期部分转换为该周的星期一。

我正在使用这个:

     datepart(ww, DateCompleted) as week 

按周对我们系统中的一组订单进行分组。我的目标是这样说而不是 37,我希望它返回第 37 周的星期一,即:2012 年 9 月 10 日。我可以通过定义每周每个数字来做到这一点,但我不想每周花太多时间打字,因为那里可能有更好的选择,我只是无法在 MySQL 之外的任何地方在线找到它和其他编程语言(我需要 T-SQL,或者任何可以在 sql server 2005 上工作的语言),我不知道如何使用它。感谢任何可以提供帮助的人。如果需要,我会尽可能多地回来查看以提供更多信息。

4

2 回答 2

3

您可以结合DATEADDDATEPART获得所提供日期的星期一:

DATEADD(day, (-1 * DATEPART(dw, datecompleted)) + 2, datecompleted)

在这里找到的例子

于 2012-09-13T17:11:14.870 回答
2

当然,我在发布此内容后立即找到了解决方案,感谢任何寻找并尝试提供帮助的人。这是我找到的解决方案:

SET DATEFIRST 1
declare @wk int  set @wk = 1
declare @yr int  set @yr = 2007

select dateadd (week, @wk, dateadd (year, @yr-1900, 0)) - 4 -
     datepart(dw, dateadd (week, @wk, dateadd (year, @yr-1900, 0)) - 4) + 1

在此链接中找到:

http://social.msdn.microsoft.com/Forums/en/transactsql/thread/cf233caf-4ccd-4bca-add2-b5eb467f2dd4

于 2012-09-13T17:09:54.237 回答