Bcz,当你将该字符串解析为无法正确解析的日期时。 因为你必须按照sql server日期格式发送日期字符串
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 :(得分:0)
SQL Server根据ISO 8601标准以下列两种格式读取日期时间值:
YYYY-MM-DDThh:mm:ss[.mmm]
YYYYMMDDThh:mm:ss[.mmm]
您输入的格式如此,并且由于不兼容的文化或语言,SQL Server永远不会抛出错误。如果您无法将其作为实际datetime
值传递,则这是传递该值的文化/语言无关方式。