SQLServer 中 错误 Error converting data type varchar to datetime 的解决方法

SQLServer 中 错误 Error converting data type varchar to datetime 的解决方法,第1张

概述SQLServer 中 错误 “Error converting data type varchar to datetime” 可能是最常见的一个错误了, 通常这是由于输入日期字符串varchar 与SQL 数据库中的默认日期模式Default_DateFormat不一致造成的,多见于非中文版的SQLServer服务器。因为SQLServer针对不同语言的版本,其默认日期格式也是“dmy”, "m

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 的解决方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1171942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存