好像也需要转换两次啊
你现在是先转换成date 再转换成char
如果想转成number,可能要这样 
select * from t1 where t1.c1>to_number(to_char(to_date('2002-01-01','yyyy-mm-dd'),'j'))

解决方案 »

  1.   

    楼上说得对,建议将你的数据类型改为Date型,这样不仅有利于比较,而且以后做扩展应用也方便很多(比如日期的相减等)
      

  2.   

    哎!
    你们都是一知半解。(别说我说话不留口德)用number(8)保存日期不是你们想象的那样。格式绝对不是yyyymmdd的。我看像是跟某个日期之间的日数差(不敢确定)。比如2002-01-01数据库里存的可能是32123(具个例子,具体是多少我也忘了,大约就是这么个范围)。而且这种保存方式绝对是oracle支持的,否则用to_date(32123,'j')就不会返回2002-01-01。我设计当然会用date。问题是这个表是客户的erp系统的,不是我们开发的。我们只是需要读它的数据。如果没有将日期转成number的函数,erp系统是怎么写进数据的?
      

  3.   

    讲话不要这么刻薄~~
    大家也都是来解决问题的,不管能不能提出一个好的方法,毕竟都是出于好意!
    J       Julian day; the number of days since January 1,4712 BC. Number specified with ’J’ must be integers.select to_date(2452277,'j') from dual
        TO_DATE(2452277,'J')
    1 2002/1/2剩下的你自己看着办吧
      

  4.   

    用between  and 比较好!
      

  5.   

    jsgcrj_f(仁军) 没有看懂问题。 HeavenHe()批评我接受。我说那句话的时候就说过了“别说我说话不留口德"。我是明知故犯。这是有感而发的。csdn上越来越多的人不仔细研究问题,回答随口而出,这是不负责任的。 HeavenHe()的解答已经证明了我的猜测。the number of days since January 1,4712 。那太好了,我已经想出一种做法了。但是我还是想知道有没有直接可以用的函数。
      

  6.   

    andraw2002 错误
    请看清楚问题再回答