TSQL

2013-11-15 4 views
0

내가 SQL 서버에서 XML을 얻고에서 XML을 구문 분석하고, 나는이TSQL

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

XML 시도 businessDate 값을

을 얻을 필요가 방법 :

<?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) 

사실, XML-날짜 형식이 아닌 businessDate 때문에, 나는 VARCHAR로 얻을 좋을 것 다음 appropriate format로 변환 :

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

sql fiddle demo