这问题咋整???是一个查询语句,昨天我用datetime类直接给值时出中文的这个错误,
把日期转成字串传过来,昨晚还能用,早上突然又报这个错误了!!!!

解决方案 »

  1.   


    问题关键:
    安装开发主机和部署主机环境分别为[.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.解决办法就是,规范类型转化的操作,尽量不要省略参数或默认参数
      

  2.   

    日它妈,在换了台机子没事了
    它是开始可以,突然不行了,存的格式是insert into tablename values(....(略),'2008-4-1',...)关键是出问题的是我个人的电脑,装的是GHOST版的系统,没有IIS ,可能是家庭版什么的,
      

  3.   

    我网上查的说是SQL2005和系统的时间格式不一样什么的
      

  4.   

    CSDN社区的用户行为准则。