数据库表 只有一个列 
存储的是详细时间 
现求一方法 把这一列更新为 详细时间里的四位年份
即这是想要的结果
MBBegindate
------------
2006
2006
2006                                               这是原来的数据
                                                        MBBegindate
                                             ----------------------
                                             01OCT2006:00:00:00.000
                                             05SEP2006:00:00:00.000
                                             23NOV2006:00:00:00.000
                                             16NOV2006:00:00:00.000
                                             19JUL2006:00:00:00.000
                                             09SEP2006:00:00:00.000
                                             12DEC2006:00:00:00.000
                                             06SEP2006:00:00:00.000
                                             01SEP2006:00:00:00.000
                                             01SEP2006:00:00:00.000
                                             27DEC2006:00:00:00.000
                                             09SEP2006:00:00:00.000
                                             19SEP2006:00:00:00.000
                                             01SEP2006:00:00:00.000
                                             28AUG2006:00:00:00.000
                                             28AUG2006:00:00:00.000
                                             01OCT2006:00:00:00.000
                                             23NOV2006:00:00:00.000
                                             29AUG2006:00:00:00.000
                                             24DEC2006:00:00:00.000
                                             07OCT2006:00:00:00.000
                                             08NOV2006:00:00:00.000
                                             08OCT2006:00:00:00.000
                                             30AUG2006:00:00:00.000
                                             16SEP2006:00:00:00.000
                                             04SEP2006:00:00:00.000
                                             01SEP2006:00:00:00.000
                                             01OCT2006:00:00:00.000
                                             01OCT2006:00:00:00.000
                                             01OCT2006:00:00:00.000
                                             01OCT2006:00:00:00.000
                                             15SEP2006:00:00:00.000
                                             01JAN2007:00:00:00.000
                                             30AUG2006:00:00:00.000
                                             31AUG2006:00:00:00.000
                                             01OCT2006:00:00:00.000
                                             01OCT2006:00:00:00.000
                                             29AUG2006:00:00:00.000
                                             01SEP2006:00:00:00.000

解决方案 »

  1.   

    如果是日期列:
    update tableNmae set mbbegindate=to_char(mbbegindate,'yyyy');如果是字符列:
    update tableNmae set mbbegindate=substr(mbbegindate,6,4);
      

  2.   

    update tableNmae set mbbegindate=substr(mbbegindate,6,4); 
      

  3.   

    2楼的 方法是对的但现在关键是 老板给的 这个表 的 MBBegindate 字段类型是 数字类型的 现在 用 2楼的 方法 提示如下:
     update bdsub.sub_test set mbbegindate=to_char(mbbegindate,6,4);
    ERROR: 函数 SUBSTR 要求字符表达式作为参数 1。
    ERROR: 数值列 mbbegindate 只能用数值表达式更新。
     高手速度 赐教 小弟 谢谢了 
      

  4.   

    update bdsub.sub_test set mbbegindate=to_number(to_char(mbbegindate,6,4),9999); 
      

  5.   

    转换为数值再赋值不就行了update tableNmae set mbbegindate=TO_NUMBER(to_char(mbbegindate,'yyyy')); 
    update tableNmae set mbbegindate=TO_NUMBER(substr(mbbegindate,6,4); 
      

  6.   

    这是ORACLE的最基本的东西
    要保住工作看来不太容易
      

  7.   

    你要走的路太长了步骤:
        SQL标准语言基础
        SQLPLUS语言
        会使用PL/SQL ACCESS SQLSERVER 甚至DB2
        POWERDESIGN OR CASESTUIO
        ORACLE网络结构
         ORACLE体系结构和组件
         RMAN恢复管理器的学习使用
         存储过程、触发器、包
         不同系统平台 UNIX 下的SHELL脚本
          批处理脚本
         RAC集群
         磁盘阵列
         灾难恢复的经验积累
         等等
                                            月薪15,000