table1里面有个日期型字段,形式如2003-6-3
我想按月份统计,就是把table1里面的记录按照12个月来统计,看看每个月有多少条记录。这样的SQL怎样写

解决方案 »

  1.   

    select 
     count(*) from table group by 
     convert(char(6),getdate(),112)
      

  2.   

    select convert(char(6),enttime,112),count(*) from syslog group by convert(char(6),enttime,112)
      

  3.   

    無聊兄我不明白convert(char(6),getdate(),112)
    给我讲一下吗
      

  4.   

    真是不好意思
    我实在弄不明白
    select convert(char(6),enttime,112),count(*) from syslog group by convert(char(6),enttime,112)
    是什么意思
      

  5.   

    看到了 就说说吧这是函数原型:
    CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
    将某种数据类型的表达式显式转换为另一种数据类型。GETDATE ( )
    按 datetime 值的 Microsoft® SQL Server™ 标准内部格式返回当前系统日期和时间。112是指定转换成"yymmdd"的形式
      

  6.   

    select datepart(mm,日期字段),count(*)
    from table
    group by datepart(mm,日期字段)
      

  7.   

    select * from table1 where 日期 between 2003-12-1 and 2004-1-1
    条数:adoquery1.recordcount
      

  8.   


    select convert(char(5),日期字段,21),count(*)
    from table
    group by convert(char(5),日期字段,21)
      

  9.   

    enttime 就是你自己要求得那个时间字段
      

  10.   

    select datepart(mm,日期字段), count(*)
    from table 
    group by datepart(mm,日期字段)
      

  11.   

    to 学习者
    21是什么意思为什么char(5)
      

  12.   

    21 或 121 (*) 是指定如下的格式:ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
      

  13.   

    我刚才用了
    select datepart(mm,日期字段), count(*)
    from table 
    group by datepart(mm,日期字段)
    运行时被告知“参数mm没有默认值”
    这么回事
      

  14.   

    函数convert还需要我定义的吗?
    为什么会告诉我函数未定义
      

  15.   

    select  count(*) from table where extract(yeah from mm)='年份' group by extract(month from mm)
      

  16.   

    第一次用得是sql server数据库上面你试试看,理论上可行!(paradox)
      

  17.   

    select 
     count(*) from table 
    where month(select date from table)=12 
      

  18.   

    如果,你想按月统计,如果成功了,你不还的做一个报表功能,去显示,去打印,如果都按上面的解决方案,都麻烦了,而且,不太通用,如果为了长远打算,在作别的项目时,又遇到,用户让你按季度,按年,按月,按天等跟时间相关的统计时,咋办!!
    告诉你一个通用的方案,但各人喜好不太一样,如果你能接受的话,请看我的方法;
    当然,你的装一下Office盘上的OWC组件,打入他们的类型库,其中有透视表,透视图组件,
    他们可以实现按月,季,年统计,并以图形和图表的形式显示;
    你可以试一试;
      

  19.   

    呵呵
    用month就搞定了
    谢谢过客
    select Month(日期字段) as 月份,count(日期字段) as 数量 from 完成 Group By Month(日期字段 Order By count(日期字段) Desc也谢谢大家!