본문 바로가기
프로그래밍/DBMS

MSSQL varchar 데이터 형식을 datetime 데이터 형식으로 변환하는 중 값 범위를 벗어났습니다.

by zoo10 2014. 8. 12.

쿼리를 작성중에 날짜 비교가 있었다.

"varchar 데이터 형식을 datetime 데이터 형식으로 변환하는 중 값 범위를 벗어났습니다." 그런데 이런 에러메시지가 출력되었다. 아주 간단한 문장이었는데.

DECLARE @MINDT CHAR(10)

SET @MINDT = '2014-04-31'

위의 @MINDT를 비교문에 쓰면 에러가 나는 것이었다.

에러가 난 쿼리는 아래와 같다.

SELECT * FROM TABLE_A WHERE CREATEDATE > @MINDT

아주 간단한 쿼리였는데 문제를 잡지 못했다. 그러다가 유레카~

2014년 4월의 마지막날이 30일이었기 때문이었다.

SET @MINDT = '2014-04-30'

위와 같이 값을 바꾸니 해결되었다. CREATEDATE 가 DATETIME인데 문자열과 비교하려고 변환하다가 그런 날짜가 존재하지 않아서 나오는 문제였던 것이었다.