2011-05-03 44 views
0

Bcz當你將該字符串解析爲日期而不能正確解析時。如何將日期數組作爲xml傳遞給存儲過程

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

格式你輸入: 爲u必須發送日期字符串爲每個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不會拋出錯誤。這是文化/語言不可知的方式來傳遞價值,如果你不能通過它作爲一個真實的價值。

+0

不,這就是要點,日期格式不會改變。這是格式不可知的文字值。它將始終成功轉換爲有效的日期時間值。 – 2011-05-03 10:19:13

+0

SET DATEFORMAT ydm;使用此代碼可以更改日期格式 – 2011-05-03 11:22:06

+0

您需要確保@Datexml中的格式化日期不使用XML典型的標準或內置格式,因爲SQL Server不能很好地理解這一點,請確保您堅持使用ISO 8601格式,如果您必須將日期作爲字符串傳入或傳出SQL Server。 – 2011-05-03 12:05:55

相關問題