2012-09-13 8 views
3

일주일의 datepart를 그주의 월요일로 변환하는 방법을 알아 내려고하고 있습니다. 내가 이것을 사용하고주 (주 중 ...) 내 주 날짜 부분 수를 변환하십시오.

:

 datepart(ww, DateCompleted) as week 

그룹에 일주일에 의해 우리의 시스템에서 주문의 집합. 내 목표는 37 대신에 37라고 말하고 싶습니다. 즉, 37 주 월요일 (예 : 09-10-2012)을 반환하고 싶습니다. 나는 매주마다 숫자를 정의함으로써 이것을 할 수 있지만 아마 더 좋은 옵션이있을 때마다 매번 타이핑하는 데 많은 시간을 소비하지 않을 것이다. 나는 MySQL과 다른 곳에서는 찾을 수 없다. 다른 프로그래밍 언어 (나는 T-SQL을 기쁘게하거나 SQL 서버 2005에서 작동하는 모든 것을 필요로한다.), 그리고 나는 그것으로 작업하는 방법을 모른다. 도움을 줄 수있는 사람을 주셔서 감사합니다. 필요한 경우 더 많은 정보를 제공하기 위해 가능한 한 자주 다시 확인해야합니다.

답변

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 

이 링크에서 찾을 :

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

:

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

3

당신은 공급 일의 월요일을 얻을 수 DATEADDDATEPART을 결합 할 수 있습니다 여기 내가 찾은 솔루션입니다 보기 found here

+0

도움을 주셔서 감사합니다 – wondergoat77

+1

@ wondergoat77 : 아무런 문제가 없지만 경고해야합니다.이 방법을 사용하면 일요일이 다음 월요일의 주간을 만듭니다. (즉, 지난 일요일 [9/9/2012]는 2012 년 9 월 10 일의 주입니다.) 그러므로 주를 월요일 - 일요일로 바꾸려면 수정이 필요합니다. –