62,267
社区成员
发帖
与我相关
我的任务
分享
问题关键:
安装开发主机和部署主机环境分别为[.Net Framework 2.0]与[.Net Framework 2.0 + 中文语言包/其他语言包]
举例:
例如,在lqb_MyUser表中有User_addDate字段(Datetime类型)
其中包括一行数据,User_addDate字段值=2008-4-1 0:00:00.000
对比:
中文语言包
查询:Select User_addDate from lqb_MyUser
返回:2008-4-1 0:00:00.000
查询:Select Convert(varchar,User_addDate) from lqb_MyUser
返回:04 01 2008 00:00AM
查询:Select Convert(varchar,User_addDate,0) from lqb_MyUser
返回:04 01 2008 00:00AM
查询:Select Convert(varchar,User_addDate,1) from z_UserInfo
返回:04/01/08
英文原版
查询:Select User_addDate from lqb_MyUser
返回:2008-4-1 0:00:00.000
查询:Select Convert(varchar,User_addDate) from lqb_MyUser
返回:Apr 01 2008 00:00AM
查询:Select Convert(varchar,User_addDate,0) from lqb_MyUser
返回:Apr 01 2008 00:00AM
查询:Select Convert(varchar,User_addDate,1) from z_UserInfo
返回:04/01/08
也就是说,如果要用Substring()取时间字符串中的一部分,Convert(Type,Name) 和 Convert(Type,Name,0) 在只安装了.net fx 2.0和安装.net fx 2.0+中文语言包的机器上获得的子串不一致。
出错信息如下:
中文:字符串向 datetime 转换时失败。
英文:Conversion failed when converting datetime from character string.
解决办法就是,规范类型转化的操作,尽量不要省略参数或默认参数