欢迎来到Java学习网!
设为首页 | 加入收藏
当前位置: 首页 > 数据库 > MSSql >

Java学习网整理:网站中常用实现日、周、月排行统计

在很多WEB系统中,都需要进行日、周、月排行统计,但是在网上寻找了一番,发现很多都是相对的周、月排行,即周排行则用当前时间减去
7天。这样我个人认为并不恰当。如月排行中,假设今天是422,则从322日至422日之间都可以算成月排行内,这样的话与我们的月排行不尽相同,我认为月排行应该指当月的排行。

概括一下,即两种情况:当前日期往前推一周或者一个月(暂且描述为“相对排行”),当前日期所在周或者所在月(暂且描述为“绝对排行”)
 

为了好描述和分析,举例说明。示例数据库如下:

说明:

表名:T_Visit

当前日期:2009-4-22

表中数据:如下

当前日期为星期几(@day):3



相对排行实现办法:

日排行:
select  top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >= CONVERT(nvarchar(10),

周排行:select  top 20 ID, userIp, Date from T_Visit where  dbo.T_Visit.Date > getdate()-7

月排行:select  top 20 ID, userIp, Date from T_Visit where  dbo.T_Visit.Date > getdate()-30


绝对排行实现办法:

日排行: select  top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >= CONVERT(nvarchar(10), getdate(), 21)) AND (dbo.T_Visit.Date <= CONVERT(nvarchar(10), dateadd(day,1,getdate()), 21))



周排行:
 

declare @day 
intset @day=3
select  top 20 ID, userIp, Date from T_Visit where (dbo.T_Visit.Date >= CONVERT(nvarchar(10),

月排行:Select top 20 ID, userIp, Date from T_Visit where year(Date)=year(getdate()) and month(date)=

    相关教程
    推荐内容