sqlServer 中 错误 “Error converting data type varchar to datetime” 可能是最常见的一个错误了, 通常这是由于输入日期字符串varchar 与sql 数据库中的默认日期模式Default_DateFormat不一致造成的,多见于非中文版的sqlServer服务器。因为sqlServer针对不同语言的版本,其默认日期格式也是“dmy”,"mdy","ymd" 不等。这里d是日期,m是月份, y是年,但是排列顺序并不同。如果输入的日期字符串 与数据库系统的 默认日期格式的顺序不同,就会出错。 具体什么语言采用什么格式,大家可以使用 EXEC SP_HELPLANGUAGE 语句查看。
网上查了一下, 可以使用设置数据库的默认语言为中文的方式解决问题,但是这个只可以解决Insert插入数据的字符串问题,并不能解决在StoredProcedure存储方法中直接使用日期参数的问题。 而且为了中文日期输入的问题,就要把整个数据库内码设置成中文,也不是很好的解决方法。 并且在存储过程StoredProcedure中调用的日期模式似乎并不取决于系统的默认语言,而取决于数据库的版本语言。还好在sqlServer中还提供了设定Login登录名的默认语言的方法,这样我们就可以采取在Login账户上设定登录默认语言为中文,从而解决格式转换错误的思路。
USE MASTER
EXEC SP_DEFAulTLANGUAGE '登录名', 'SimplifIEd Chinese'
此方法测试通过。
看sqlServer的教程,似乎在sqlServer 2005版以上,也可以直接使用
ALTER LOGIN 登录名 WITH DEFAulT_LANGUAGE = 'SimplifIEd Chinese'
但是此语句在笔者的sql EXPRESS 2008上不能编译通过。
如此, 在用户使用设定的帐号登录后,系统默认语言就是设置的语言, 日期格式转换出错的问题也就解决了。
总结以上是内存溢出为你收集整理的SQLServer 中 错误 Error converting data type varchar to datetime 的解决方法全部内容,希望文章能够帮你解决SQLServer 中 错误 Error converting data type varchar to datetime 的解决方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)