XML日期時間我正在接收XML參數現在XML存儲過程包含日期和時間字段如何讀取SQL
這裏是我的xml其作爲參數傳遞給存儲過程傳遞的樣品。我使用SQL Server 2005的
<transdetails>
<_x005B_Sheet1_x0024__x005D_>
<Date_of_transaction>2011-07-29T13:47:34+05:00</Date_of_transaction>
<Type_of_the_transaction>card</Type_of_the_transaction>
<Card_number>7000460000451470</Card_number>
<Total_quantity>27.81</Total_quantity>
<Total_amount>2419.75</Total_amount>
<Name_of_Retail_Outlet>MIDWAY PETROLEUM SERVICES</Name_of_Retail_Outlet>
<Product_Purchased>PETROL</Product_Purchased>
</_x005B_Sheet1_x0024__x005D_>
<transdetails>
這裏是存儲過程
ALTER PROCEDURE [dbo].[usp_getexceldata]
@transdetails xml
AS
SET NOCOUNT ON
SET ARITHABORT ON
BEGIN
DECLARE @XML AS XML
DECLARE @DestinationTemp TABLE (ID INT IDENTITY(1,1),
Date_of_transaction VARCHAR,
Type_of_the_transaction nvarchar(255),
Card_number nvarchar(255),
Total_quantity float,
Total_amount float,
Name_of_Retail_Outlet nvarchar(255),
Product_Purchased nvarchar(255)
)
SET @XML = @transdetails
INSERT INTO @DestinationTemp(Date_of_transaction, Type_of_the_transaction, Card_number, Total_quantity, Total_amount, Name_of_Retail_Outlet, Product_Purchased)
SELECT
x.d.query('./Date_of_transaction').value('.' , 'DateTime') Date_of_transaction,
x.d.query('./Type_of_the_transaction').value('.', 'nvarchar(255)') Type_of_the_transaction,
x.d.query('./Card_number').value('.', 'nvarchar(255)') Card_number,
x.d.query('./Total_quantity').value('.' ,'float') Total_quantity,
x.d.query('./Total_amount').value('.' , 'float') Total_amount,
x.d.query('./Name_of_Retail_Outlet').value('.' ,'nvarchar(255)') Name_of_Retail_Outlet,
x.d.query('./Product_Purchased').value('.', 'nvarchar(255)') Product_Purchased
FROM
@XML.nodes('transdetails//_x005B_Sheet1_x0024__x005D_') x(d)
SELECT * FROM @DestinationTemp
現在,我得到當試圖轉換Date_of_transaction
爲datetime,如果我嘗試初始設定值作爲VARCHAR那麼它將返回一個錯誤例如整數值,如果我有時間
2011-07-29T13:47:34+05:00
它將返回我2 ...請任何幫助嗎?
謝謝Mikael它適合我:-) – shumaila
@shumaila - 這太棒了。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –