SQLServer 中 错误 Error converting data type varchar to datetime 的解决方法
来源:互联网 发布:学电商美工 编辑:程序博客网 时间:2024/05/31 13:14
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 的解决方法
- Error converting data type nvarchar to datetime
- MSSQL: Arithmetic overflow error converting expression to data type int
- Arithmetic overflow error converting expression to data type int.”
- sql常犯错误之不正确的谓词运算顺序Conversion failed when converting the varchar value 'abc' to data type int
- SQLServerException: Arithmetic overflow error converting numeric to data type numeric(1)
- SQLServerException: Arithmetic overflow error converting numeric to data type numeric(2)
- SQLServer中DateTime转换成Varchar样式
- How to select the data type in SQLserver database such as varchar, nvarchar
- svn import 时出现类似 svn: Error converting entry in directory '/home/data/test/dev_test_com/include' to UTF-8 的解决方法
- datetime to varchar
- SQL - Converting char to exact length varchar
- recyclerview的“Error:Error converting bytecode to dex“报错
- Error converting bytecode to dex
- Error converting bytecode to dex
- 【数据库】 Sqlserver 2008 error 40出现连接错误的解决方法
- "List cannot be resolved to a type"错误的解决方法
- mysql varchar长度过大引起hibernate原生态SQL错误:No Dialect mapping for JDBC type: -1错误的解决方法
- java web 课设小结
- UVa 100 - The 3n + 1 problem 水题
- 第8天:散列HASH(五)性能
- 黑马程序员_static关键字总结
- [Magento] Use browser to run the index shell ?
- SQLServer 中 错误 Error converting data type varchar to datetime 的解决方法
- MYSQL错误码大全
- 将NULL传递给C++字符串形参
- Chrome 中的 JavaScript 断点设置和调试技巧
- python enumerate函数
- linux ln命令创建链接
- Java多线程(5)——线程池
- 设计模式-创建型05-原型与单例
- POJ 3233