select to_char(sysdate,'mm'), to_char(sysdate,'hh24') from  dual;1. select * from qua_data where to_char(sysdate,'yyyymm') = '200601'2. select * from qua_data where to_char(sysdate,'yyyymmdd') = '20060116'3. select * from qua_data where to_char(sysdate,'yyyymmddhh24') = '2006011604'

解决方案 »

  1.   

    楼上方法可行,但是对于大表而言,效率实在太低了。SELECT COUNT(*) FROM qua_data WHERE time>=TO_DATE('20060101','YYYYMMDD') AND TIME<TO_DATE('20060201','YYYYMMDD');SELECT COUNT(*) FROM qua_data WHERE time>=TO_DATE('20060116','YYYYMMDD') AND TIME<TO_DATE('20060117','YYYYMMDD');SELECT COUNT(*) FROM qua_data WHERE time>=TO_DATE('2006011604','YYYYMMDDHH24') AND TIME<TO_DATE('2006011705','YYYYMMDDHH24');
      

  2.   

    这种方式,如果在time字段上有索引,那么即便是数千万记录,也会很快