SELECT YF || '.' || TO_NUMBER(RQ) FROM SB01X2000@CY2ORA  WHERE LENGTH(RQ) < 3 ;
2007.11.26
2007.11.27
2007.11.28
2007.11.29
2007.11.31
2007.11.1
2007.11.2
2007.11.3
2007.11.5
2007.11.7
2007.11.8
2007.11.9
2007.11.10
2007.11.11
如上,然后我用
SELECT TO_DATE(sj,'YYYY.MM.DD')
FROM 
(
SELECT YF || '.' || TO_NUMBER(RQ) sj
FROM SB01X2000@CY2ORA  WHERE LENGTH(B.RQ) < 3 
 ) ;
报错:date not valid for month specified
求助,是什么原因呢?~~~

解决方案 »

  1.   


    SELECT TO_DATE(sj,'YYYY.MM.DD')
    FROM  
    (
    SELECT YF || '.' || lpad(TO_NUMBER(RQ),2,0) sj
    FROM SB01X2000@CY2ORA WHERE LENGTH(B.RQ) < 3  
     ) ;
      

  2.   


    SELECT TO_DATE(sj,'YYYY.MM.DD')
    FROM  
    (
    SELECT YF || '.' || lpad(TO_NUMBER(RQ),2,0) sj
    FROM SB01X2000@CY2ORA WHERE LENGTH(B.RQ) < 3  
     ) ;
      

  3.   


    SELECT YF || '.' || TO_NUMBER(RQ) FROM SB01X2000@CY2ORA WHERE LENGTH(RQ) < 3 ;
    2007.11.26
    2007.11.27
    2007.11.28
    2007.11.29
    2007.11.31
    2007.11.1
    2007.11.2
    2007.11.3
    2007.11.5
    2007.11.7
    2007.11.8
    2007.11.9
    2007.11.10
    2007.11.11
    --你下面写的转换没问题 是11月没有31天 只有30天
    SELECT TO_DATE(sj,'YYYY.MM.DD')
    FROM  
    (
    SELECT YF || '.' || TO_NUMBER(RQ) sj
    FROM SB01X2000@CY2ORA WHERE LENGTH(B.RQ) < 3  and TO_NUMBER(RQ)<=30
     ) 
      

  4.   

    O(∩_∩)O谢谢Dota_noney的细心提示,知道问题所在了~~谢谢大家热心帮助~