에러 : The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
원인 : varchar 데이터 타입의 값을 datetime 데이터 타입으로 변환할 때, 맞지 않는 값이 입력되어 발생함. 예를 들면, DATETIME 데이터 타입은 'YYYY-MM-DD HH:MI:SS'의 형식으로 값을 입력해야 하지만, VARCHAR 데이터 타입으로 입력된 값이 이 형식과 다르거나, 유효한 날짜나 시간 값을 벗어난 경우 발생할 수 있음.
따라서
VARCHAR 데이터 타입으로 입력된 값을 DATETIME 데이터 타입으로 변환하기 전, 값이 DATETIME 형식에 맞는지 확인하고, 유효한 값을 입력해야 함. 또한, 데이터 타입을 변환할 때 발생할 수 있는 다른 예외 상황도 고려해야 함.
내가 이 오류를 맞딱뜨린 이유....
평시에는 잘만 호출하던 쿼리에서 해당 에러가 떨어졌다.
이 뜻은 특정 로우에서 DATETIME 값으로 변환해줘야 하는 데이터가 형식에 맞지 않아 정상적으로 DATETIME으로 반환하지 못한것이다. 가령 'yyyymmdd' 형식의 20230906 과 같은 데이터가 있어야 하는 컬럼에 30906 같은 맞지 않은 형식의 데이터가 있는 경우이다. 이런 케이스는 보통 데이터를 입력하는 곳에서 데이터 인입을 잘못했거나, insert / update 처리 하는 과정에서 데이터가 잘못 인입된 경우였다.
'DB > SQL Server' 카테고리의 다른 글
[mssql] 작은 따옴표(') 입력하기 (1) | 2023.09.06 |
---|---|
[mssql] 시간 지연 함수 waitfor delay (0) | 2023.09.06 |
[mssql] 프로시저 CRUD 사용 예제 (0) | 2022.09.26 |