从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
2012-05-26 13:35
477 查看
报错信息:
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
得到一些线索 SET DATEFORMAT,
查sql 帮助,其作用是:设置用于输入 datetime 或 smalldatetime 数据的日期部分(月/日/年)的顺序。
有效参数包括 mdy、dmy、ymd、ydm、myd 和 dym。
问题原因就是处在这里。
网上原有的解决方案是 加上 SET DATEFORMAT ymd
但是sql文档上已经说明SET DATEFORMAT 只能影响当前会话的转换。
如果逐一进行修改势必会十分的麻烦。
如果换一种思路的话
首先我们先
执行sp_helplanguage 相当于select * from master..syslanguages
执行结果部分如下
23 dmy
0 British
British English
24 dmy
0 eesti
Estonian
27 dmy
0 Português (Brasil)
Brazilian
28 ymd
0 繁體中文
Traditional Chinese
30 ymd
0 简体中文
Simplified Chinese
显然不同语言有着自己习惯的日期格式。我们只要修改我们的语言设置我们就可以修改所有的日期格式设置了。
SET LANGUAGE 会联动SET DATEFORMAT 。只要我能 SET LANGUAGE 成正确的语言,那么我的字符串日期就能正确处理。
操作方法:
打开企业管理器-->你注册的SQL server-->安全性 -->登录,双击你所用的登录用户,弹出 sql server 登录属性,修改默认设置 中的语言。
备注:
语言= English, 其DATEFORMAT 为 mdy, 但是它也能正确转换格式为“yyyy-mm-dd hh:mm:ss” 的字符串日期。
关键字:
SQL Server ,2147217913 ,
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
得到一些线索 SET DATEFORMAT,
查sql 帮助,其作用是:设置用于输入 datetime 或 smalldatetime 数据的日期部分(月/日/年)的顺序。
有效参数包括 mdy、dmy、ymd、ydm、myd 和 dym。
问题原因就是处在这里。
网上原有的解决方案是 加上 SET DATEFORMAT ymd
但是sql文档上已经说明SET DATEFORMAT 只能影响当前会话的转换。
如果逐一进行修改势必会十分的麻烦。
如果换一种思路的话
首先我们先
执行sp_helplanguage 相当于select * from master..syslanguages
执行结果部分如下
23 dmy
0 British
British English
24 dmy
0 eesti
Estonian
27 dmy
0 Português (Brasil)
Brazilian
28 ymd
0 繁體中文
Traditional Chinese
30 ymd
0 简体中文
Simplified Chinese
显然不同语言有着自己习惯的日期格式。我们只要修改我们的语言设置我们就可以修改所有的日期格式设置了。
SET LANGUAGE 会联动SET DATEFORMAT 。只要我能 SET LANGUAGE 成正确的语言,那么我的字符串日期就能正确处理。
操作方法:
打开企业管理器-->你注册的SQL server-->安全性 -->登录,双击你所用的登录用户,弹出 sql server 登录属性,修改默认设置 中的语言。
备注:
语言= English, 其DATEFORMAT 为 mdy, 但是它也能正确转换格式为“yyyy-mm-dd hh:mm:ss” 的字符串日期。
关键字:
SQL Server ,2147217913 ,
相关文章推荐
- 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
- 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
- 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界的解决方法
- 从char数据类型到datetime转换导致datetime值越界
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
- [Z]从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
- 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
- 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界
- (转)从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
- 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界解决方案
- 从char数据类型到datetime数据类型的转换导致datetime值越界
- sqlserver查询报从char数据类型到datetime数据类型的转换导致datetime值越界
- 将时间类型DateTime数据转换成毫秒Int型
- 将u_char *转换成char*类型的十六进制数据
- System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
- c/c++数据类型转换1(float,char,string,CString )
- VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换
- c#数据类型转换,与其BYTE,float,double,char类型间的转换方法
- 补码的应用:从buffer里的一段char*根据数据类型和长度转换成相应的整型