2013-10-23 2 views
0

으로 변환 할 때 SSRS에서 쿼리를 실행하고 있습니다.이 쿼리는 날짜 선택기 날짜 형식을 DD/MM/YYYY로 기본 설정합니다. 그러나 실제 데이터베이스의 날짜는 YYYY-MM-DD 형식입니다. 나는이 날짜를 아래와 같이 변환하려고 시도했지만 "varchar 데이터 유형을 datetime 데이터 유형으로 변환하면 범위를 벗어난 값을 가져 왔습니다"라는 메시지가 나타납니다.SSRS - varchar 데이터 형식을 datetime 데이터 형식으로 변환하면 범위를 벗어난 값이 반환됩니다. - YYYY-MM-DD

Col1 BETWEEN convert(varchar, '22/10/2013 00:00:00', 120) AND convert(varchar, '22/10/2013 23:59:59', 120) 

오류가 발생하는 이유는 무엇입니까? 예. 2013 년 12 월 22 일 22시 30 분까지 유효한 날짜 형식이므로 2013-10-2013으로 쉽게 전환해야한다고 생각했습니다.

그러나 나는 뭔가를 놓친 것 같아요!

+3

세 가지 질문 : 데이터베이스 열은 varchar 또는 datetime입니까? 날짜로 올바르게 입력 된 매개 변수입니까? 쿼리가 데이터베이스 (예 : SQL Management Studio)에서 직접 작동합니까? – Bill

+0

SSMS에서 작동하지 않습니다. 동일한 오류가 발생합니다. 열은 "날짜 시간"이고 SSRS의 매개 변수는 "날짜/시간"입니다. – Dean

답변

2

DateTime 값은 형식이 없습니다. 표시가 일 때 형식을 적용합니다. 매개 변수를 DateTime 유형으로 설정하고 문자열 변환없이 쿼리에 전달하면됩니다.

+0

아, 그렇습니다. 처음에는 이러한 매개 변수를 문자열로 선언하여 잘못되었습니다. 예. @StartDate 대신 '@StartDate'를 사용하십시오. 내가 변환 오류 메시지를 받았을 때 나는 잘못 입력 한 모든 인용문을 제거해야만하는 잘못된 날짜를 시도했다. – Dean

+0

글쎄, 그게 방의 문제 야. _literal 문자열''@StartDate ''를 날짜로 변환하려했다. 매개 변수 대체는 단순히 문자열 바꾸기를 수행하지 않으므로 매개 변수 값을 이와 같은 문자열에 넣을 수 없습니다. –

관련 문제