日期:2014-05-18  浏览次数:20382 次

“Aug 28 2007 11:21AM”为什么不能写入datetime数据类型
为什么将“Aug   28   2007   11:21AM”这中格式的数据写入datatime字段报错?
“将数据类型   nvarchar   转换为   datetime   时出错。”

但直接粘到SQLSERVER表中可以啊。

------解决方案--------------------
select convert(varchar(10),cast( 'Aug 28 2007 11:21AM ' as datetime),120)


----------
2007-08-28

(1 row(s) affected)
------解决方案--------------------
这个问题与Windows系统的区域选项设置有关。如果区域选项设置成中文(中国), 'Aug 28 2007 11:21AM '是不可识别的日期格式,转换会出错。

改成美国试试。
------解决方案--------------------
set language 'us_english '
select cast( 'Aug 28 2007 11:21AM ' as datetime)
--result
/*
-------------------------
2007-08-28 11:21:00.000

(所影响的行数为 1 行)
*/