select * from table  
where UpdateDate<to_date('200504','yyyymm');

解决方案 »

  1.   

    select * from table_name
    where to_char(UpdateDate,'yyyymm') < '200504';
      

  2.   

    应该采用yxxx(小孬)的方法,如果在字段UpdateDate上建立了索引,那么,使用Alkeen() 的方法就会破坏索引的使用,导致语句的执行会非常慢
      

  3.   

    其实不管哪个月,月初总是1号嘛,我觉得你可以就把比较的常数写成月初那天嘛
    select * from table  
    where UpdateDate<to_date('20050401','yyyymmdd');
    既不破坏索引的使用,又可以实现你需要的功能
      

  4.   

    select * from table  
    where UpdateDate<to_date('200504','yyyymm');
      

  5.   

    那要看你的日期存储格式了.否则用
    select * from table_name
    where to_char(UpdateDate,'yyyymm') < '200504';
    能好些.可以建立基于函数的索引
      

  6.   

    用Tod707070(幸福的秋天)的方法好一些,但是如果包括当月的话,日期就要加一个月
      

  7.   

    select * from table_name
    where to_char(UpdateDate,'yyyymm') < '200504';
      

  8.   

    oracle中日期和时间的操作
    http://www.cnoug.org/viewthread.php?tid=38313
      

  9.   

    SELECT * FROM table_name WHERE TO_DATE(UpdateDate,'YYYYMM') < TO_DATE('200504','YYYYMM')