2011-05-03 53 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

相关问题