user表里结构
id  name  role  createdate
1   admin  2    2010/11/12
2   system 1    2010/11/23
3   test  2    2009/11/12
我想把2010年创建的用户总数统计出来,为什么不对啊?
select count(*) from user where to_char(createdate,'yyyy-mm-dd') like '2010%';为什么统计不出来

解决方案 »

  1.   

    select count(*) from user 
    where createdate>=to_date('2010-01-01','YYYY-MM-DD')
    and createdate<to_date('2011-01-01','YYYY-MM-DD');
      

  2.   

    desc user;  -- 看一下你createdate字段的数据类型(如果是日期类型或timestamp类型,可以用我上面的方法)-- 如果是字符串类型,只能用其他方法!
      

  3.   

    --我的可以啊
    select count(*) from emp where to_char(hiredate,'yyyy-mm-dd') like '1981%'  COUNT(*)
    ----------
            10
    --取出2010年的数据
    select count(*) from user 
    where to_char(createdate,'yyyy')='2010';--例如:
    SQL> select count(*) from emp where to_char(hiredate,'yyyy')='1981';  COUNT(*)
    ----------
            10
      

  4.   


    如果createdate是日期类型或timestamp类型,应该没问题如果createdate是字符类型会报数据类型错误
    就别类型转换了
    select count(*) from user where createdate like '2010%';
      

  5.   

    我真TM郁闷啊,oracle怎么也这么垃圾?
    我删了一条数据 又插入一条就好使了
    我真TM服气了
      

  6.   


    ------试下这个
    select count(*) from user where trunc(createdate,'yyyy')=trunc(sysdate,'yyyy')