2017-05-03 1 views
2

날짜를 입력 할 때 문자열 유형 열을 변환하려고합니다.SQL 서버에서 dd/mm/yyyy를 날짜로 변환하십시오.

열 이름은 StartDate이며 문자열 날짜 형식은 dd/mm/yyyy입니다. 필드 유형은 varchar(3000)입니다.

CONVERT(datetime, StartDate, 103) 

CAST(CONVERT(VARCHAR(10), StartDate, 110) AS DATE) 

CONVERT(DATE, RIGHT(StartDate, 4) + '-' + SUBSTRING(StartDate, 4, 2) + '-' + LEFT(StartDate, 2), 126) 

및 기타 유사한 조합 :

나는 다음을 시도했다.

"범위를 벗어났습니다."및 "변환에 실패했습니다"라는 오류 메시지가 계속 나타납니다.

누구나 독창적 인 솔루션이 있습니까?

+0

는 다음 (같은 나쁜 데이터가 문제 영역을 식별 할 것을 제안 '30/02/2015' 또는'12/13/2017' 등) – Lamak

+0

첫 번째와 세 번째 변형은 잘 작동합니다. 두 번째 형식 (스타일 110 포함)은 mm-dd-yyyy 형식입니다. –

+0

가능한 [SQL Server 문자열을 날짜 변환] (http://stackoverflow.com/questions/207190/sql-server-string-to-date-conversion) –

답변

2

가짜 데이터가있는 것 같습니다. 예를 들어

Select try_convert(date, '15/07/2014', 103) 

반환

2014-07-15 

2012+ 경우에, 나는 당신이

Select * 
From YourTable 
Where try_convert(date, StartDate, 103) is null 

관련 문제