1:and cast((cast(rep_b_year as varchar)+'-'+cast(rep_no as varchar)+'-1') as datetime)>='2009-6-1'
and cast((cast(rep_b_year as varchar)+'-'+cast(rep_no as varchar)+'-1') as datetime)<='2010-7-1'2:and cast((cast(rep_b_year as varchar)+'-'+cast(rep_no as varchar)+'-1') as datetime)='2009-6-1'1:是按时间段查询来的,我怎么转成ORACLE语句呢?上面是查询出09年6月份的,如果我<=后面变成2010-7-1 我需要查询的是2009-6,到2010-7 月的纪录。。注(如果>=,<=时间都是一样的话,就查询当月纪录)2:这个是查询单月....对ORACLE 不熟悉,时间比较紧迫,希望哪位好心的大哥帮帮忙

解决方案 »

  1.   

    表结构就是rep_b_year 年字段  rep_no 月字段 上面那个写法是我在SQL 里面的写法,可以实现这个功能,现在还要做个ORACLE 版本的,ORACLE 里面时间字段不是这样写的吧。。
      

  2.   

    to_char(时间字段,'YYYY-MM') between '2009-06' and '2010-07'
    to_char(时间字段,'YYYY-MM-DD') between '2009-06-01' and '2010-07-31'
      

  3.   

    to_date(to_char(rep_b_year) || '-' || to_char(rep_no) || '-1','YYYY-MM-DD') between to_date('2009-6-1','yyyy-mm-dd') and to_date('2010-7-1','yyyy-mm-dd')
      

  4.   


    to_date(to_char(rep_b_year) || '-' || to_char(rep_no) || '-1','YYYY-MM-DD') between to_date('2009-6-1','yyyy-mm-dd') and to_date('2010-6-30','yyyy-mm-dd')
      

  5.   

    ORACLE使用的是to_date和to_char可以参考下:
    sys@ORCL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';会话已更改。sys@ORCL> select to_date((to_char('2010') || '-'||to_char('08')||'-1'),'YYYY-MM-DD') from dual;TO_DATE((T
    ----------
    2010-08-01