2011-05-03 5 views
0

Bcz에 전달하는 방법 u 구문 분석을 통해 해당 문자열을 올바르게 구문 분석하지 않습니다.날짜 배열을 xml로 저장 프로 시저

YYYY-MM-DDThh:mm:ss[.mmm] 
YYYYMMDDThh:mm:ss[.mmm] 

형식 당신에게 입력 : 그것에 대해 유 SQL 서버 날짜 형식에 따라 날짜 문자열을 보내야 할

ALTER PROCEDURE [dbo].[SprSelectScheduleForReAutoAllocate] --'<AADates><AADate AADateValue="2011-04-27 00:00:00.000" /><AADate AADateValue="2011-04-28 00:00:00.000" /></AADates>' 
(
    @Datexml xml  
) 
AS 
BEGIN 
        EXEC sp_xml_preparedocument @xmlDoc output ,@DateXml 

           SELECT AADateValue 
     FROM OPENXML(@xmlDoc,'AADates/AADate',1) 
     WITH 
     (
     AADateValue Datetime  
     ) 
     xmlDocuments 

       EXEC sp_xml_removedocument @xmlDoc 
End 

답변

0

SQL Server는 다음 두 가지 형식의 ISO 8601 표준에 따라 날짜 시간 값을 읽고 이처럼 SQL Server는 호환되지 않는 문화 나 언어로 인해 오류를 던지지 않습니다. 실제로 datetime 값으로 전달할 수없는 경우이 값을 전달하는 문화/언어 불가지론 적 방법입니다.

+0

아니요, 요점은 날짜 형식이 변경되지 않는다는 것입니다. 형식에 구애받지 않는 리터럴 값입니다. 그것은 항상 유효한 datetime 값으로 변환되는 데 성공합니다. –

+0

SET DATEFORMAT ydm; 이 코드를 사용하여 날짜 형식을 변경할 수 있습니다 –

+0

@Datexml의 형식 날짜는 SQL Server에서 잘 이해할 수 없기 때문에 표준 또는 XML 형식의 표준 형식을 사용하지 않아야합니다. SQL Server에서 문자열을 날짜로 전달해야하는 경우 ISO 8601 형식을 사용합니다. –