错误码:
ORA-01830: date format picture ends before converting entire input string
问题应该出在这一句上
AND BillingCyclID=TO_CHAR(add_months(TO_DATE(v_STATDAY,'YYYYMM'),-1))BillingCyclID是VARCHAR2,V_STATDAY也是VARCHAR2还有就是我在程序前面已经有了一句用到了TO_DATE
RecStatChgDate=TO_DATE(v_STATDAY,'YYYYMMDD');
如果我把这一句去掉,整个程序就没有问题TO_DATE和TRUNC一直用不好

解决方案 »

  1.   

    还有一个问题
    DATE类型的数据和字符串的日期怎么比较
    如DATE型数据2003-4-23 13:44:41
    字符串20030423
    我只想比较年月日,时分秒不比较
      

  2.   

    AND BillingCyclID=TO_CHAR(add_months(TO_DATE(substr(v_STATDAY,1,6),'YYYYMM'),-1))
      

  3.   

    DATE类型的数据和字符串的日期怎么比较
    如DATE型数据2003-4-23 13:44:41
    字符串20030423
    我只想比较年月日,时分秒不比较
    --------
    你是要比较大小还是要比较差多少天
    要是只比较大小to_char(datetime,'yyyymmdd')就可以和字符串比较了
    要是比较差多少天,可以用datetime-to_date(strdate,'yyyymmdd')
      

  4.   

    你是要比较大小还是要比较差多少天
    要是只比较大小to_char(datetime,'yyyymmdd')就可以和字符串比较了
    要是比较差多少天,可以用datetime-to_date(strdate,'yyyymmdd')
    ------------------------------------------------------------
    我是想找某一天的记录
    下面的方法可以,但是不知道有没有更好的方法
    select * from table 
    where pdate>to_date('20050213','yyyy-mm-dd')
    and pdate<to_date('20050213'||'23:59:59','yyyy-mm-dd hh24:mi:ss')
      

  5.   

    select * from table 
    where to_char(pdate,'yyyymmdd')='20050213'
      

  6.   

    select * from table 
    where to_char(pdate,'yyyymmdd')='20050213'
    -----------------------------------------------
    这种方法不好吧
    因为我表中数据量比较大
    这样的话就不会走索引了,效率太低了,有没有更好的方法
      

  7.   

    可以这样
    select * from table 
    where pdate>=to_date('20050213','yyyymmdd')
    and pdate<to_date('20050213','yyyymmdd')+1