微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SqlServer 数据库按日期分组查询


要求    两个时间点:一个开始时间(2007/09/08 09:10:43),一个结束时间(2007/10/09 04:32:37)
              数据库中表的字段有 id(编号)  name(名字)   time(注册时间) 表名为table
                        需要查询比如在两个时间段内 比如如上面时间点 
                    求:1.9月,10月分别有多少个id?
                                   2.两个时间段的单个日中分别有多少个id?
                                   3两个时间段的单个小时中分别有多少个id?
  我的思路是分别按 月,日,小时分组,然后统计?  select count(id) from table where time>='2007/09/08 09:10:43' and time<=
'2007/10/09 04:32:37' 
     但我做出来的都只能按秒分组,请各位高人指点 怎么才能实现 按月或者按日,按小时分组?先谢谢啦!!



--按照月份统计
select count(id) cnt,datepart(mm,time) [Month]
from [table]
where [time] between '2007/09/08 09:10:43' and '2007/10/09 04:32:37'
group by datepart(mm,time)
--按照日统计
select count(id) cnt,datepart(dd,time) [Day]
from [table]
where time between '2007/09/08 09:10:43' and '2007/10/09 04:32:37'
group by datepart(dd,time)
--按照小时统计
select count(id) cnt,datepart(hh,time) [Hour]
from [table]
where [time] between '2007/09/08 09:10:43' and '2007/10/09 04:32:37'
group by datepart(hh,time)

转自 http://www.itpub.net/thread-917632-1-1.html



版主

卡卡西

精华贴数
0
专家积分
0
技术积分
4377
社区积分
0
注册时间
2007-3-10
论坛徽章:
22

'会员2007贡献徽章

'2012新春纪念徽章

'2012新春纪念徽章

'2012新春纪念徽章

'2012新春纪念徽章

'马上有车

'马上有房

'马上有钱

'马上有对象

'2012新春纪念徽章

'管理团队成员

'2011新春纪念徽章

2#

  发表于 2007-12-27 16:23:45  | 只看该作者
--按照月份统计 select count(id) cnt,time) [Month] from [table] where [time] between '2007/09/08 09:10:43' and '2007/10/09 04:32:37' group by datepart(mm,time) --按照日统计 select count(id) cnt,time) [Day] from [table] where time between '2007/09/08 09:10:43' and '2007/10/09 04:32:37' group by datepart(dd,time) --按照小时统计 select count(id) cnt,time) [Hour] from [table] where [time] between '2007/09/08 09:10:43' and '2007/10/09 04:32:37' group by datepart(hh,time)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐