आपकी पहली क्वेरी जिस पर आप काम का दावा करते हैं, वास्तव में आपके द्वारा प्रदान किए गए XML के साथ काम नहीं करती है। यह ऐसा होना चाहिए।
declare @handle int
declare @XML xml = '<ROOT><ids><id>2013-01-01</id></ids><ids><id>2013-01-02</id></ids></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/ids', 2) with (id Date)
exec sp_xml_removedocument @handle
दूसरा संस्करण होना चाहिए
declare @handle int
declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/id', 2) with (id Date '.')
exec sp_xml_removedocument @handle
चूंकि आप SQL Server 2008 या बाद के संस्करण का उपयोग कर रहे हैं, आप इसके बजाय XML डेटाटाइप का उपयोग कर सकते हैं।
declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'
select T.N.value('text()[1]', 'date') as id
from @XML.nodes('ROOT/id') as T(N)