您的位置:首页 > 数据库

SqlServer 数据库按日期分组查询。

2015-04-08 16:17 253 查看
要求 两个时间点:一个开始时间(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 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
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
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

























加好友

发消息

2#


发表于
2007-12-27 16:23:45 |只看该作者

--按照月份统计

select count(id) cnt,datepart(mm,time) [Month]

from 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
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
where [time] between '2007/09/08 09:10:43' and '2007/10/09 04:32:37'

group by datepart(hh,time)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐