HI,大家好呀,这里想问一个问题。
SELECT to_char(to_date('2005/11/10','yyyy/mm/dd'),'mm-dd-yyyy') FROM dual;这里的to_char为什么不能用to_date?'2005/11/10'这样的格式转换为 11-10-2005 这样的格式转换还有什么方法吗,谢谢!

解决方案 »

  1.   

    SQL> -- 里面已经是date型了还TO_DATE?你不是找碴吗?
    SELECT TO_CHAR(TO_DATE('2005/11/10','YYYY/MM/DD'),'MM-DD-YYYY') FROM DUAL;TO_CHAR(TO_DATE('2005/11/10','
    ------------------------------
    11-10-2005Executed in 0.907 seconds
      

  2.   

    to_date是将date类型转为指定的字符串格式.你这里第一个转换已经为date类型了,所以不能再to_date
    to_char则相反.
      

  3.   

    可是,我要用这个转换出来的日期格式作日期加法  用add_months()函数;
     to_char格式的日期 应该不可以用这个函数的呀,怎么办啦。?
      

  4.   

    那就在to_char之前用add_months   如:SELECT to_char(add_months(to_date('2005/11/10','yyyy/mm/dd'),1),'mm-dd-yyyy') FROM dual; 
    看看是不是能达到你的要求
      

  5.   

    这里的to_char为什么不能用to_dateto_char 不能这样用..
      只有to_date 才能这样用...能指定格式
           yyyy-mm-dd;
      

  6.   

    OPER@TL>SELECT to_char(add_months(to_date('2005/11/10','yyyy/mm/dd'),1),'mm-dd-yyyy') FROM dual; TO_CHAR(AD
    ----------
    12-10-2005OPER@TL>