初次学习oracle  公司用的是11g
为什么我用 
select  add_months('20111019',1) from  T
是正确的,
但是
若用
select add_months('111019',1) from T 
对有的T却是错误的,而对有的T表是对的
为啥呢

解决方案 »

  1.   

    select add_months('111019',1) from T '111019'格式不对。至少 是YYYYMMDD,不然add_months不识别。
      

  2.   

    select add_months('20111019',1) from T是正确的,
    add_months('111019',1)不对,不要这样用
      

  3.   

    日期格式,需要是: YYYYMMDD 的,你年份才2位,不符合格式
      

  4.   

    可以试试这么写:
    select add_months('20-10月-11',1) from dual;
      

  5.   

    ----select add_months('111019',1) from T  
    对有的T却是错误的,而对有的T表是对的
    为啥呢
    日期'111019'格式不对的。
      

  6.   

    这样写:
    select add_months(to_date('111019','yymmdd'),1) from T   
      

  7.   

    select add_months(to_date('111019','yymmdd'),1) from T 
      

  8.   

    同楼上,码代码还是规范点好,应该先用TO_DATE转换成日期格式