본문 바로가기

공부/SQL

[MSSQL] DATETIME CONVERT

반응형

 

DB에 20230501225336과 같이 날짜 데이터를 넣고 있는데, 데이터 추출이 필요해서

convert함수를 사용해서 추출하려고 했으나,

 

SELECT CONVERT(DATETIME, '20230501225336', 121) AS ConvertedDateTime;

 

문자열을 날짜 및/또는 시간으로 변환하지 못했습니다.와 같은 오류 발생

 

stuff를 사용하려고도 했으나 실패, try_convert 또한 실패..

 

뭐가 문제인것인가..!

 

해결

 

텍스트로 들어온 데이터가 뭔가 구조가 안 맞는듯 싶다.

 

따로 substring을 해서 원하는 데이터로 뽑아내서 concat후 convert 처리

 

SELECT CONVERT(DATETIME, CONCAT(SUBSTRING('20230501225336', 1, 4), 
'-', SUBSTRING('20230501225336', 5, 2), '-', SUBSTRING('20230501225336', 7, 2), 
' ', SUBSTRING('20230501225336', 9, 2), ':', SUBSTRING('20230501225336', 11, 2), 
':', SUBSTRING('20230501225336', 13, 2)), 121) AS ConvertedDateTime;

 

 

반응형