我想弄清楚如何将一周的datepart转换为该周的星期一。
我正在使用它:
datepart(ww, DateCompleted) as week
按周对我们系统中的一组订单进行分组。我的目标是这样说而不是37,我希望它返回第37周的星期一,即:09-10-2012。我能够通过定义每个数字的每周来做到这一点,但我宁愿不花太多时间每周打字,因为那里可能有更好的选择,我只是无法在网上找到它而不是MySQL和其他编程语言(我需要T-SQL,或者任何可以在sql server 2005上运行的东西),我不知道如何使用它。感谢任何可以提供帮助的人。我会尽可能经常回来,以便在需要时提供更多信息。
答案 0 :(得分:3)
您可以合并DATEADD
和DATEPART
以获取所提供日期的星期一:
DATEADD(day, (-1 * DATEPART(dw, datecompleted)) + 2, datecompleted)
答案 1 :(得分: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