2014-04-11 2 views
0

내 큰 절차가 끝나면 이전에 이렇게 만들었습니다. 예를 들면 "2"로 2 월 판매 정보를 얻을 수 있습니다. 하지만 이제는 좀 더 많은 데이터를 가져 오려고 특정 날짜를 쓸 수 있도록 이것을 변경하고 싶습니다. 내가 쓰고 싶은 것에 대한어떻게이 날짜를 선택 날짜로 변경할 수 있습니까

  1. 예 : 2014년 1월 29일 - 2014년 2월 28일을

코드 :

WHERE isa.sales_date >= Dateadd(mm, (@year - 1900) * 12 + (@month - 1), 
         0) 
     AND isa.sales_date < Dateadd(mm, (@year - 1900) * 12 + @month, 0) 
+0

질문은 거의 해결되었습니다! :) – Lebowski

답변

1

시도 :

@startDate varchar(10) --2014-01-01 
@endDate varchar(10) --2014-01-29 

: 두 개의 매개 변수가 다음과 같이 코드를 수정하십시오 :

WHERE isa.sales_date >= convert(datetime, @startDate, 120) 
    AND isa.sales_date < DATEADD(DAY, 1, (convert(datetime, @endDate, 120)) 

DATEADD 부분은 마지막 날까지 모든 판매를 포함해야합니다.

+0

예, 이것이 제가 위대한 선생님을 찾고있는 이유입니다! 그러나 내가 그것을 실행할 때 어떤 데이터도 얻지 못하는 것 같습니다. 어떤 형식으로 날짜를 써야합니까? 또한이 오류가 발생합니다. 프로 시저 실행이 실패했습니다. 22007 - [SQL Server] varchar 데이터 형식을 datetime 데이터 형식으로 변환하면 범위를 벗어난 값이 반환됩니다. – Lebowski

+0

startDate 및 endDate에 전달되는 정확한 입력은 무엇입니까? 나는 '@startDate = '29 .01.2014' '및'@endDate = '28 .02.2014 ''라고 생각 했습니까? – Knightwisp

+0

- 테스트를 위해 2014-01-01 및 2014-01-29 – Lebowski

관련 문제