数据库有year和month字段,想写一语句:....  where year=当前的年  and month=当前月-1如果当前时间是1月份的话,就变成了:... where year=当前的年-1  and month='12'
希望一条语句能出来,谢谢! ̄ ̄

解决方案 »

  1.   

    where year = to_char(add_months(sysdate,-1),'yyyy') and month = to_char(add_months(sysdate,-1),'mm')
      

  2.   

    兄弟不行啊。错误来源: ORA-00936: 缺少表达式
      

  3.   

    where year=decode(to_char(sysdate,'fmMM'),1,to_char(sysdate,'YYYY')-1,to_char(sysdate,'YYYY')) and month=decode(to_char(sysdate,'fmMM'),1,12,to_char(sysdate,'fmMM')-1);
      

  4.   

    还是不行,我说明一下,我这不是在oracle里面用,是在一支持它的设计器里用,所以请能在实现功能的前题下尽量简化。
      

  5.   

    SQL> select to_char(add_months(sysdate,-1),'yyyy') as year, to_char(add_months(sysdate,-1),'mm') 
      2  as month from dual;YEAR MONTH
    ---- -----
    2006 12?.楼主确定自己没有写错?
      

  6.   

    兄弟你写的确实能测出来,但是有一点问题不明白的?当我把系统日期改成2005年1月.的时候,它还会能把2006年12月的数据查找出来。
    当我把2006年12月的数据改成2006年1月,就是把数据库里的时间值改了,却查不出来。那么应该是这条语句是对的,但是sysdate好像取的不是系统时间吧?
      

  7.   

    sysdate取得是数据库系统时间
    楼主你修改的是客户端操作系统时间,还是数据库服务器的系统时间啊?