2011-01-19 21 views
0

人!我需要在這 一些幫助我有一個時間戳字段的表,我想使用WCF服務將數據轉移到其他SQL Server 現在,我嘗試模仿這一點,使用「爲XML」timestamp到XML然後從XML,如何?

DECLARE @aa XML 
DECLARE @idoc int 
SET @aa =(select * from db_table for xml auto, elements, root('root'), type) 

選擇@aa返回

<root> 
<Person> 
<preson_id>1</preson_id> 
<Name>Иван</Name> 
<Surname>Иванов</Surname> 
<BurthDate>1915-05-03</BurthDate> 
<guid>2E739E87-3CA4-4ED8-ADD0-8B59957668B8</guid> 
<version>AAAAAAAAB9E=</version> 
</Person> 
<Person> 
<preson_id>2</preson_id> 
<Name>Николай</Name> 
<Surname>Николаев</Surname> 
<BurthDate>2005-03-05</BurthDate> 
<guid>BDC41C59-D70F-4B70-954E-4918B9516AF8</guid> 
<version>AAAAAAAAB9I=</version> 
</Person> 
<Person> 
<preson_id>3</preson_id> 
<Name>Максим</Name> 
<Surname>Максимов</Surname> 
<BurthDate>1845-11-15</BurthDate> 
<guid>740E57F3-56BA-48B8-92AF-978D7B1D2712</guid> 
<version>AAAAAAAAB9M=</version> 
</Person> 
</root> 

它看起來不錯的第一次看,但是當我嘗試採取從XML數據,時間戳值看起來並不好(

EXEC sp_xml_preparedocument @idoc OUTPUT, @aa 
SELECT * FROM OPENXML (@idoc, '/root/Person',2) 
    WITH db_table 

如何從源代碼中的xml時間戳值中獲取?

對不起,我不擅長英文)))

+0

執行什麼SQL您使用的是做到這一點呢? SQL Server,MySQL,Oracle? – JNK 2011-01-19 15:32:51

+1

另一方面,您的XML(以及它創建的數據庫)在其元素名稱中存在拼寫錯誤。 BurthDate應該是BirthDate,preson_id應該是person_id – 2011-01-19 17:32:00

回答

0

如果您使用MS SQL Server 2005或更高版本,你可以

select 
    r.p.value('preson_id[1]', 'int') as preson_id, 
    r.p.value('BurthDate[1]', 'date') as BurthDate, 
    r.p.value('guid[1]', 'uniqueidentifier') as guid, 
    r.p.value('version[1]', 'rowversion') as timestamp 
from @aa.nodes('root/Person') r(p)