3

1 週間の datepart をその週の月曜日に変換する方法を見つけようとしています。

私はこれを使用しています:

     datepart(ww, DateCompleted) as week 

システム内の一連の注文を週ごとにグループ化します。私の目標は、これが 37 ではなく、37 週の月曜日、つまり 09-10-2012 を返すようにすることです。数値ごとに毎週を定義することでこれを行うことができますが、おそらくより良いオプションがある場合は、毎週入力するのにそれほど多くの時間を費やしたくありません。MySQL 以外のオンラインで見つけることができず、他のプログラミング言語 (T-SQL をお願いします、または sql server 2005 で動作するものが必要です)、それを使用する方法がわかりません。助けてくれる人に感謝します。必要に応じてより多くの情報を提供するために、できるだけ頻繁に確認します。

4

2 に答える 2

3

You can combine DATEADD and DATEPART to get the monday of the date supplied:

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

Example found here

于 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 に答える