2013-11-15 77 views
0

我越來越XML在SQL Server中,我需要得到businessDate如何解析XML在TSQL

我想這

Select C.value('(businessDate)[1]', 'DATETIME') AS 
FROM @input.nodes('/MealsUsed/*') AS T(C) 

XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<MealsUsed businessDate="10/09/2013" count="10" institutionID="Test"> 
<MealUsed> 
    <TransactionDate>02/05/2013 08:10:06</TransactionDate> 
    <LocationID>8</LocationID> 
    <Swipes>1</Swipes> 
</MealUsed> 
<MealUsed> 
+0

發生了什麼時你做到了嗎? – RBarryYoung

+0

另外,我們可以假設你實際上在'AS'和'FROM'之間有一個名字嗎?或者是這個問題? – RBarryYoung

回答

1

businessDate是屬性,而不是元素,所以你必須使用它@

select 
    C.value('@businessDate', 'datetime') as businessDate 
from @input.nodes('MealsUsed') as T(C) 

實際上,由於businessDate不是XML日期格式,我會更好地得到它爲varchar,然後用appropriate format轉換:

select 
    convert(datetime, C.value('@businessDate', 'varchar(10)'), 103) as businessDate 
from @input.nodes('MealsUsed') as T(C) 

sql fiddle demo