Sql server 无法在SQL server中将varchar转换为datetime

Sql server 无法在SQL server中将varchar转换为datetime,sql-server,Sql Server,在我的数据库中,我在将varchar转换为datetime时遇到问题,原因是datetime的格式不同,如下所示 从字符转换日期和/或时间时转换失败 绳子 我有两个选择条款如下 选择Getutcdate() 从perfmon中选择前1个localmachinetime 两者都分别返回以下格式 2012-05-2806:54:45.753> 28-05-2012 03:03:07 当我尝试使用CAST将其转换为datetime时,它在第二种情况下给出了错误,如下所示 结果将varchar数据类型转

在我的数据库中,我在将varchar转换为datetime时遇到问题,原因是datetime的格式不同,如下所示

从字符转换日期和/或时间时转换失败 绳子

我有两个选择条款如下

选择Getutcdate()
从perfmon中选择前1个localmachinetime

两者都分别返回以下格式

2012-05-2806:54:45.753>

28-05-2012 03:03:07

当我尝试使用CAST将其转换为datetime时,它在第二种情况下给出了错误,如下所示

结果将varchar数据类型转换为datetime数据类型 在超出范围的值中

可以与日期/时间样式一起使用

convert(datetime, '28-05-2012 03:03:07', 105)

发布您的cast查询到目前为止您尝试了什么?感谢您的回复,它运行良好,但是否有任何解决方案可以将其转换为105,而不考虑'28-05-2012 03:03:07'(第二个参数)格式,在我的情况下会有所不同。你是说表
perfmon
中的
localmachinetime
已将
datetime
值存储为不同格式的字符串吗?你说的“to 105”是什么意思?代码从105字符串格式转换为
datetime
。哦,是指105表示此格式“28-05-2012 03:03:07”?我不确定那里的格式是什么,在我的情况下是任何格式。如果你知道字符串中的日期格式是
dd-mm-yy
,你可以使用上面的代码从字符串转换为日期时间。这就是
105
所做的。如果要从其他格式转换,则必须使用不同的样式。如果出于某种原因需要将日期时间存储为字符串,则应使用
yyy-mm-ddThh:mi:ss.mmm
作为值的格式。