어떻게 varchar (8) 날짜 형식 (dd/mm/yyyy) 인 ddmmyyyy를 변환 할 수 있습니까?varchar (ddmmyyyy)를 날짜 형식으로 변환
날짜 varchar (8) 매개 변수를 허용하는 저장 프로 시저가 있습니다.
데이터베이스에 삽입하기 전에 날짜 형식으로 변환하고 싶습니다. 날짜
어떻게 varchar (8) 날짜 형식 (dd/mm/yyyy) 인 ddmmyyyy를 변환 할 수 있습니까?varchar (ddmmyyyy)를 날짜 형식으로 변환
날짜 varchar (8) 매개 변수를 허용하는 저장 프로 시저가 있습니다.
데이터베이스에 삽입하기 전에 날짜 형식으로 변환하고 싶습니다. 날짜
ddmmyyyy
가 유효한 날짜 형식되지 않습니다 :
Conversion failed when converting date and/or time from character string.
createdDate 열 유형 : 나는
INSERT INTO mytable(createdDate) VALUES (CONVERT(date, CONVERT(varchar(8), @date), 106));
오류를 사용했습니다. 먼저 문자열을 DATE
/DATETIME
으로 구문 분석 할 수있는 문자열로 만들어야합니다. 가장 빠른 방법은 SUBSTRING
조각을 mm/dd/yyyy
형식으로 간단하게 만드는 것입니다. 그것은 성공적으로 변환됩니다. 하지만 VARCHAR(8)
이 있습니다. 따라서 어느 쪽이든 VARCHAR(10)
(또는 더 나은 것은 단지 CHAR(10)
)이되도록 변경하거나 변경된 값을 보유 할 로컬 변수를 선언해야합니다. 예를 들어
:
DECLARE @Date VARCHAR(8); -- input parameter
SET @Date = '25032014';
DECLARE @Date2 CHAR(10);
SET @Date2 = SUBSTRING(@Date, 3, 2)
+ '/' + SUBSTRING(@Date, 1, 2)
+ '/' + SUBSTRING(@Date, 5, 4);
SELECT @Date2, CONVERT(DATE, @Date2);
-- 03/25/2014 2014-03-25
편집 : 는 사실, 난 약간 간단한 방법을 발견했다. 이 방법으로 시작했지만 mmddyyyy
과 반대로 ddmmyyyy
과 작동하지 않는다는 것을 깨달았습니다. 나는 어쨌든 dd/mm/yyyy
에 맞는 날짜 스타일 번호가 있다는 것을 놓쳤다. 따라서 단순히 들어오는 문자열에 슬래시 두 개를 추가 한 다음 CONVERT
을 호출하면 "스타일"로 103
을 사용해야 만 작동합니다. 첫 번째 솔루션과 마찬가지로 들어오는 매개 변수를 VARCHAR(8)
대신 VARCHAR(10)
또는 CHAR(10)
으로 변경하거나 CHAR(10)
이 될 로컬 변수를 만들어야합니다.
DECLARE @Date VARCHAR(8); -- input parameter
SET @Date = '25032014';
DECLARE @Date2 CHAR(10);
SET @Date2 = STUFF(STUFF(@Date, 3, 0, '/'), 6, 0, '/');
SELECT @Date2, CONVERT(DATE, @Date2, 103); -- 103 = dd/mm/yyyy
-- 25/03/2014 2014-03-25
변환 "스타일"은 CAST and CONVERT에 대한 MSDN 페이지에서 찾을 수 있습니다.
왜 varchar를 varchar로 다시 변환 하시겠습니까? 변환 (날짜, @ 날짜, 106)이 작동하지 않습니까? – Mukund
db에 삽입하는 동안 varchar를 날짜로 변환 할 필요가 없습니다. db에 의해 자동으로 처리됩니다. INSERT INTO MyTable (createdDate) 값 ('dd/mm/yyyy')과 SQL Server에서 값을 찾습니다. – jadavparesh06
http://stackoverflow.com/questions/5287427/how-to-insert-datetime-into-the-sql-database-table – jadavparesh06