从字符串转换日期/时间时,T-SQL转换失败

时间:2012-01-26 21:11:12

标签: tsql datetime perfmon

Perfmon在直接登录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”。在选择期间将此转换为日期时间字段的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

我发现以下是有效的(而不是CHAR(24)):

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

希望有更好的解决方案。

答案 1 :(得分:0)

没有更好的答案,但这会使味道变得微不足道。

CAST(CAST(CounterData.CounterDateTime AS CHAR(NN))AS DATETIME)AS CounterDateTime

还会截断该值,以便不需要将额外的T-SQL DateTime截断为分钟,小时等。

答案 2 :(得分:0)

CONVERT(DATETIME, SUBSTRING(CounterDateTime, 1, 23), 102)