2013-02-01 2 views
-2

구분 기호가없는 날짜 열이 있습니다. 열은 nvarchar입니다. 문자열은 길이와 형식이 일치하여 MMDDYYYY입니다. 이 값을 datetime으로 변환하려면 어떻게해야합니까?문자열을 SQL 서버의 datetime으로 변환합니다.

편집 -이 질문은 SQL Server와 관련되어 있습니다.

+1

[당신은 무엇을 시도 했습니까?] (http://www.whathaveyoutried.com) 그리고 무엇을 검색 했습니까? – Kermit

+0

가능한 복제본을 [SQL Server에서 datetime으로 변환] (http://stackoverflow.com/questions/1509977/convert-varchar-into-datetime-in-sql-server) 및 [SQL Server에서 datetime으로 변환] (http://stackoverflow.com/questions/1135746/sql-server-convert-string-to-datetime) 및 [SQL Server Varchar를 날짜 시간으로 변환] (http://stackoverflow.com/questions/10247050/sql-server- convert-varchar-to-datetime) 및 기타 많은 사람들 – Kermit

+0

'cast (datetime으로 열) '을 사용해 보셨습니까? –

답변

2

가정 SQL 서버 :

DECLARE @A NVARCHAR(10) 
SET @A = '11302012' 

SELECT CONVERT(DATETIME,LEFT(@A,2) + '/' + 
     SUBSTRING(@A,3,2) + '/' + RIGHT(@A,4),101) 
+0

도움 주셔서 감사합니다. – tintyethan

0
BEGIN 
DECLARE @d DATETIME 
DECLARE @s NVARCHAR(32) 
SET @s = N'12012013' 
SET @d = SUBSTRING(@s, 5,4) + SUBSTRING(@s, 1,2) + SUBSTRING(@s, 3,2) 
SELECT @d 
END 

SQL 서버가 날짜로 올바르게 구문 분석 할 수있는 형식으로 문자열을 조작해야합니다. 위의 YYYYMMDD 형식입니다.

EDIT 프랑스어 설정으로 인해 "-"가 제거되었습니다.

+0

이것은 단지'CONVERT'를 사용할 수있는 많은 작업입니다 – Kermit

+0

@njk - 뭔가를 놓치지 않는 한 mmddyyyy 형식의 CONVERT 스타일은 없습니다 http://msdn.microsoft.com/en-us /library/ms187928.aspx –

+0

@LastCoder 그리고 그 중 하나가 무엇입니까? – Lamak

0

먼저 항상 상관없이 서버 설정이 단순 문자열 함수를 사용하여 (YYYYMMDD) 작동하지 않는 하나의 형식을 변경 한 다음 날짜로 변환 :

declare @datestring varchar(8) = '11302012'; 

select CONVERT(datetime, RIGHT(@datestring, 4) + LEFT(@datestring, 4)) ConvertedDatetime; 
관련 문제