SQL按月统计或按日统计

前提:

   created_date 是 表 A 的一个日期字段

 

1、按月分组统计 (1\2\3\4等自然月统计)

  select sum(quantity) from A  group by trunc(created_date,‘mm’);

 

  用 trunc 函数 将日期转化为 每个月的第一天(或者说是忽略月(mm)后面得日期);

 

 

 

2、如果 需求是要 按 每个月 的25号来划分的话(实际经常碰到)

   select sum(quantity) from A
   group by trunc(created_date+(add_months(created_date,1)-created_date-20),'mm');

  

   20 的作用是 每个月按20号 分割月之间  如果是按每个月的15号分割

       那么 20 的位置就是15;

   蓝色字体的意思是求得 所给日期 created_date 所在月的天数;

   减去20 是求得 还需要 再加上 多少天就到下个月了;

posted @ 2011-07-31 10:52  C#&SQL  阅读(1184)  评论(0)    收藏  举报