我的意思是取xcjyrq列中从左数前4个字符是'2007'的所有记录:SELECT * FROM S_glzcb WHERE substr(xcjyrq,1,4)='2007'记录中有很多前4个字符是2007的,但是查询不到,请问大家要怎么改?

解决方案 »

  1.   

    substr是Qracle的函数,我试过的,如果该字段不是时间类型的,我这种写法就好用的
      

  2.   

    不行吗?
    那试试
    SELECT * FROM S_glzcb WHERE substr(concat(xcjyrq,''),1,4)='2007'
    或者
    SELECT * FROM S_glzcb WHERE xcjyrq+0='2007'
    还不行就考虑下其它方法。看看oracle函数表。
      

  3.   

    foolbirdflyfirst(湖水清澈) :按你的方法做了,还是不行啊
      

  4.   

    SELECT * FROM S_glzcb WHERE substr(xcjyrq,1,4)='2007'
    如果只是找2007的话,
    SELECT * FROM S_glzcb WHERE to_char(xcjyrq,'yyyy') like '%2007%'你前面写的应该也能查出来,你看下是不是数据前面有空格