求统计存储过程思路?

okyzx 2005-07-23 08:34:41
有一个在线表中,其中有二个字段LoginTime登陆时间,LogoutTime登出时间(LogoutTime的值始终为GETDATE()即当前时间),都是DATETIME型的数据类型


我现在想统计
1、给出指定年,统计他每月的在线情况
2、给出指定年、月,统计他每天的在线情况
3、给出指定年、月、日,统计他每小时的在线情况
3、给出指定年、月、日、时,统计他每分钟的在线情况
结果集为
1月 1000
2月 2000
。。。
1号 100
2号 200
。。。
31号 99
以此类推

多谢大侠门指点!
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
okyzx 2005-07-23
  • 打赏
  • 举报
回复
to Frewin(江门工人) ( )
能说得详细一点吗?多谢
Frewin 2005-07-23
  • 打赏
  • 举报
回复
如果这样,你的表设置得不合理,应该增加一个用户字段.
okyzx 2005-07-23
  • 打赏
  • 举报
回复
TO:wangdehao(找找找)
多谢你的答案,不过你只统计登陆时间,而我需要的是在LoginTime-LogoutTime,这个区间内
的时间

比如说,一个用户LoginTime等于2005-07-31 15:15
到第二天,就8月了,我如果按你的方法是统计不到8月的数据
wangdehao 2005-07-23
  • 打赏
  • 举报
回复
1、select month(LoginTime) as months,count(*)as 次数 from table where year(LoginTime)='输入的年份' group by month(LoginTime)
2.select day(LoginTime) as days,count(*) as 次数 from table where year(LoginTime)='输入的年份'and month(LoginTime)='输入的月份' group by day(LoginTime)

3.select hour(LoginTime) as hours,count(*) as 次数 from table where year(LoginTime)='输入的年份'and month(LoginTime)='输入的月份'and day(LoginTime)='输入的日期' group by hour(LoginTime)
okyzx 2005-07-23
  • 打赏
  • 举报
回复
注:
统计的时间,应该是在LoginTime-LogoutTime,这个区间内
okyzx 2005-07-23
  • 打赏
  • 举报
回复
就是在线人数的意思 :)
Frewin 2005-07-23
  • 打赏
  • 举报
回复
1000,2000是什么意思?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧