Perfmon 在直接登录到 SQL 时创建数据库的方式不太友好:
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”。在选择期间将其转换为日期时间字段的正确方法是什么?
CONVERT(DATETIME, SUBSTRING(CounterDateTime, 1, 23), 102)
我发现以下工作(而不是CHAR(24)
它):
select top 1 Cast(Cast(CounterDateTime as CHAR(23)) as datetime) from CounterData
不过希望有更好的解决方案。
没有更好的答案,但这会使味道不那么苦涩。
CAST(CAST(CounterData.CounterDateTime AS CHAR(NN)) AS DATETIME) AS CounterDateTime
还截断该值,以便不需要将额外的 T-SQL DateTime 截断为分钟、小时等。