2012-01-26 97 views
1

性能監視器也不是那麼親切與它直接登錄到SQL時創建數據庫的方式:T-SQL轉換從字符串轉換日期/時間或失敗時

enter image description here

select top 1 Convert(datetime, CounterDateTime) from CounterData

返回

Conversion failed when converting date and/or time from character string.

該單元的值是 「2012-01-25 14:12:10.802」。在選擇過程中將其轉換爲日期時間字段的正確方法是什麼?

+0

你嘗試使用CAST(CounterDateTime作爲DateTime)嗎? – Akhil

+0

@Akhil:是的相同結果 –

+0

您正在使用哪個版本的MS SQL?它工作在MS SQL 2008 CREATE TABLE #Table(CounterDateTime \t炭(24)) INSERT INTO #Table(CounterDateTime) \t SELECT '2012-01-25 14:12:10.802' SELECT CONVERT(日期時間, CounterDateTime)FROM #Table – Akhil

回答

0

我想通了,下面的工作(而不是CHAR(24)它是):

select top 1 Cast(Cast(CounterDateTime as CHAR(23)) as datetime) from CounterData

希望有一個更好的解決方案,但。

0

沒有更好的答案,但這使得味道少了點苦。

CAST(CAST(CounterData.CounterDateTime AS CHAR(NN))AS DATETIME),使得不需要AS CounterDateTime

此外截斷值的其他T-SQL日期時間截斷到分鐘,小時等。

0
CONVERT(DATETIME, SUBSTRING(CounterDateTime, 1, 23), 102) 
相關問題