쿼리를 작성중에 날짜 비교가 있었다.
"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인데 문자열과 비교하려고 변환하다가 그런 날짜가 존재하지 않아서 나오는 문제였던 것이었다.
'프로그래밍 > DBMS' 카테고리의 다른 글
MSSQL TRY CATCH 와 커서 (ERROR 16915) (3) | 2014.12.09 |
---|---|
ROLLUP 총계만 필요할 때 (0) | 2014.12.03 |
MSSQL 테이블 목록 조회 (0) | 2014.12.03 |
오라클 WITH문과 CREATE TABLE 쓰기 (0) | 2014.11.24 |
MSSQL 누적합 구하기 (0) | 2014.07.15 |
MSSQL 피벗 사용하기 (0) | 2014.07.10 |
SQL 테이블 목록 확인 및 특정 컬럼 포함 테이블 보기 (0) | 2014.06.23 |
MSSQL 1~100 까지 더미 테이블 생성하고 싶을 때 (0) | 2014.06.09 |