求一语句,比如现在是5月份.我想查出01.02.03.04.05 月份意思就是查询出前几个月怎么写.希望热心人能帮我解决

解决方案 »

  1.   

    select * from tb where substr(to_char(时间字段,'yyyy-mm-dd'),1,7) < '2008-06'
      

  2.   

    substr(to_char(时间字段,'yyyy-mm-dd'),1,7) 
    老乌龟,哪用这么麻烦啊
    to_char(时间字段,'yyyy-mm')不就行了,何必再取SUBSTR呢
      

  3.   

    select * from tb where substr(to_char(时间字段,'yyyy-mm-dd'),1,7) between '2008-01' and '2008-05'
      

  4.   

    对.select * from tb where to_char(时间字段,'yyyy-mm') between '2008-01' and '2008-05'
      

  5.   

    如果你只是要显示今年到当前月的所有月份
    Row# MONTHS1 2008-01
    2 2008-02
    3 2008-03
    4 2008-04
    5 2008-05可以这样SELECT     TO_CHAR (ADD_MONTHS (TRUNC (SYSDATE, 'YYYY'), ROWNUM - 1),
                        'YYYY-MM'
                       ) months
          FROM DUAL
    CONNECT BY ROWNUM <= TO_NUMBER (TO_CHAR (SYSDATE, 'mm'))
      

  6.   

    不知道对你有没有帮助
    select t.*, t.rowid from ad_docadvice t where to_char(t.prm_getmoney_date,'yyyy-mm')>=to_char(sysdate,'yyyy')||'-01' and to_char(t.prm_getmoney_date,'yyyy-mm')<=to_char(sysdate,'yyyy=mm')
      

  7.   

    select t.*, t.rowid from ad_docadvice t where to_char(t.prm_getmoney_date,'yyyy-mm')>=to_char(sysdate,'yyyy')||'-01' and to_char(t.prm_getmoney_date,'yyyy-mm')<=to_char(sysdate,'yyyy-mm')
      

  8.   

    修改一下to_char(sysdate,'yyyy=mm') 不是=号  是to_char(sysdate,'yyyy-mm')
      

  9.   

    hebo的比较经典,如果只要月份就下边的
    SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), ROWNUM - 1), 'MM') MONTHS
      FROM DUAL
    CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(SYSDATE, 'mm'))