2013-02-14 103 views
1

您好,我被轉換爲UTC DateTime字符串「2013-02-04T10:30:23 + 00 :00「轉換爲Sql 2005 datetime格式。 我試圖 轉換(日期時間, '2013-02-04T10:30:23 + 00:00',101頁)。,但它給了我錯誤「的轉換從字符串轉換日期時間失敗時使用T-SQL將日期時間轉換爲「2013-02-04T10:30:23 + 00:00」

然而,這並不工作轉換(日期時間, '2013年2月4日10:30:23',101)。

是否有轉換(日期時間任何變通,「2013-02-04T10:30:23 +00:00',101)?

提前致謝。

回答

0

你可以做這樣的:

DECLARE @s VARCHAR(100) = '2013-02-04T10:30:23+00:00' 
SELECT CONVERT(DATETIME, LEFT(@s, 10) + ' ' + SUBSTRING(@s, 12, 8), 101) 

這將提取的字符串需要的部分,它們連接成一個新的字符串,然後使用CONVERT得到DATETIME

+0

謝謝!但我一直在尋找一種不改變字符串的解決方案,因爲它會消耗更多的資源,而我有數千條記錄要處理。 – Mehboob 2013-02-14 12:40:16

+0

是的,如果你使用的是SQL Server 2008,你可以有'CAST(CONVERT(DATETIMEOFFSET,@s,207)AS DATETIME)',但是在SQL Server 2005中沒有'DATETIMEOFFSET'數據類型。 – 2013-02-14 13:15:39

+0

如果存在性能問題,您可以創建上述建議定義的計算列,那麼您還必須使用「PERSISTED」選項創建它。 – 2013-02-14 13:22:59

0
DECLARE @utc nvarchar(100) = '2013-02-04T10:30:23+00.00' 
SELECT CAST(STUFF(@utc, CHARINDEX('+', @utc), LEN(@utc),'') AS datetime) 
相關問題