2012-01-26 96 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) 
相关问题