日期:2014-05-16  浏览次数:20674 次

帮忙看看这条sql语句错在哪里了?
update UserData set password=123123,permissions=2,age=年龄,nation=民族,sex=man,birth=2014年4月22日,idCard=身份证,phone=电话,email=邮箱 where userID=111149068297865

提示是,“年4月22日”附近有语法错误。但是我找了半天也不知道为什么错了
先谢谢大家乐
------解决方案--------------------
应该用引号吧值给引起来的吧

你的birth字段是日期类型的,应该是birth=‘2014-4-22’
------解决方案--------------------
我怎么觉得你的update那么怪的?
UPDATE  UserData
SET     [password] = 123123 ,
        [permissions] = 2 ,
        age = '年龄' ,
        nation = '民族' ,
        sex = 'man' ,
        birth = '2014年4月22日' ,
        idCard = '身份证' ,
        phone = '电话' ,
        email = '邮箱'
WHERE   userID = '111149068297865'

------解决方案--------------------
分析可能原因:1、birth字段定义的类型和赋值不匹配;2、赋值的内容加单引号
------解决方案--------------------
update UserData set   [password]=123123,[permissions]=2,--敏感字段屏蔽下
                                     age='年龄',nation='民族',sex='man',birth='2014-04-22',-- birth字段一般是datetime类型,用这种赋值比较好
                                     idCard='身份证',phone='电话',email='邮箱' 
where userID='111149068297865'

------解决方案--------------------
引用:
update UserData set password=123123,permissions=2,age=年龄,nation=民族,sex=man,birth=2014年4月22日,idCard=身份证,phone=电话,email=邮箱 where userID=111149068297865

提示是,“年4月22日”附近有语法错误。但是我找了半天也不知道为什么错了
先谢谢大家乐


password = 123123 , 这个还可以理解 ,

age = 年龄 , 这个系统会认为,年龄是一个字段名,而不是一个具体的值 ,

birth=2014年4月22日 ,没有这样的用法,必须改成 '2014-4-22' 。