解决方案 »

  1.   

    看不太明白你的描述,一会2014-06,一会2014-06-01的,而2014-06-01是符合字符串转日期所需要的格式的,应该不会出错。但是我把数据类型改成varchar还是报一样的错。
    怎么改的varchar且不管这些,一个列转换类型时,你必须全体更新为转换为那个类型的数据的格式,然后改变列类型,那样才不会出错
      

  2.   

    是“2014-06”是从别人从别的表中移植过来的,现在“2014-06”程序不能识别,只能是别“2014-06-01”这种格式的,我想直接用sql把‘2014-06’改成“2014-06-01” 这种格式
      

  3.   


    1、如果字段是datetime类型,就不可能是"2014-06"这样的值。
    2、update pcs_sep set productDate='2014-06-01'这句会将表中全部字段的值都更新成'2014-06-01'。
      

  4.   


    1、如果字段是datetime类型,就不可能是"2014-06"这样的值。
    2、update pcs_sep set productDate='2014-06-01'这句会将表中全部字段的值都更新成'2014-06-01'。
    后面有where 
      

  5.   


    2014-06,这种本来就不是datetime类型的数据
    1、sql server datetime类型的列,可以插入null或者合法的日期,不知道你的“2014-06”是怎么搞进去的?!
    先解决的这个问题,避免再有类似的数据进入 pcs_sep 
    2、这种数据不能通过语句更新的,只能打开表,进行编辑,手工修改成合法的日期格式
      

  6.   


    2014-06,这种本来就不是datetime类型的数据
    1、sql server datetime类型的列,可以插入null或者合法的日期,不知道你的“2014-06”是怎么搞进去的?!
    先解决的这个问题,避免再有类似的数据进入 pcs_sep 
    2、这种数据不能通过语句更新的,只能打开表,进行编辑,手工修改成合法的日期格式
    这个是别人从别的表中移植过来的,我也不知道是怎么移植过来的,在企业管理器里面打开表可以修改?我去试试
      

  7.   


    -- 这个语句不会报错,是不是后面的值,你是拼接出来的?
    update pcs_sep set productDate='2014-06-01',
      

  8.   

    SELECT * FROM 移植表 WHERE IsDate(移植的值) = 0
    你先把这些非日期的[移植的值]更正为日期值,再赋值到 productDate 中。
    或者赋值到 productDate 中时排除非日期值。