DB/SQL Server

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

오달달씨 2023. 9. 6. 09:34
728x90
반응형

에러 : 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 처리 하는 과정에서 데이터가 잘못 인입된 경우였다.

728x90
반응형

'DB > SQL Server' 카테고리의 다른 글

[mssql] 작은 따옴표(') 입력하기  (1) 2023.09.06
[mssql] 시간 지연 함수 waitfor delay  (0) 2023.09.06
[mssql] 프로시저 CRUD 사용 예제  (0) 2022.09.26