2009-11-05 116 views
0

我們在我們的應用程序中使用了TypedDataSet。數據以XML形式傳遞給過程以進行插入/更新。調整時區 - 將XML日期時間轉換爲SQL日期時間

現在使用數據填充DE後,儘管時區信息如下所示添加,但日期時間保持不變。

日期在DB:2009-10-29 18:52:53.43 在XML日期:2009-10-29T18:52:53.43-05:00

現在,當我嘗試下面的XML轉換爲SQL日期時間是調整5小時,我越來越

2009-10-29 23:52:53.430 作爲最終輸出,這是不對的。需要找到一種方法來從下面的XML片段中提取日期時間,忽略時區。

我有XML在以下格式,時區差-05.00

<Order> 
    <EnteredDateTime>2009-10-29T18:52:53.43-05:00</EnteredDateTime> 
</Order> 

回答

0

2009-10-29 18:52:53.43是不相同的時間2009-10-29T18:52:53.43-05 :00。這是不正確的第一步。從XML到SQL DateTime的轉換是正確的。

ISO 8601

+0

確定。我明白那個。但那麼解決方案是什麼?我是否需要對我的select語句進行更改?爲什麼「2009-10-29 18:52:53.43」正在轉換爲「2009-10-29T18:52:53.43-05:00」? – 2009-11-05 01:11:37

+0

我從來沒有見過SQL Server以這種格式輸出日期。 DB-> XML字符串在哪裏發生?這就是問題所在。你有這個代碼的控制權嗎? – Bryan 2009-11-05 01:28:30

+0

我不知道。我們使用企業庫來填充這個數據集。 – 2009-11-05 14:51:32

0

首先轉換爲鍵入日期的xsd時間,然後使用值的方法來將該值轉換爲一個SQL日期時間。

select convert(xml, '<DateTimeWithTimeZone>2012-09-15T16:08:14.787-05:00</DateTimeWithTimeZone>').value('xs:dateTime(/DateTimeWithTimeZone[1])', 'datetime') 

Convert datetime with time zone to SQL datetime

相關問題