📄
字号:
作者:豆腐
日期:00-6-2 上午 09:52:05
做页面统计的时候,经常需要判断每一周的每一天的访问量是多少!
可是,怎么做呢?
在这里,我给 大家 提供一个 进行 周 统计 的 例子
1.数据库结构
create table StaticTable(
StaticId int identify(1,1),
visisttime datetime
)
2. 利用到了SQL server 的 函数 DateAdd 和 DatePart
DatePart 是得到 与参数相关的 结果(具体 使用 请看 SQL 7 online book)
DateAdd 得到 与 指定时间 相差 指定 整数 的 日期
3.为了 提高 执行速度,将 功能 用 存储 过程 实现
存储过程代码如下:
CREATE PROCEDURE GetWeekData AS
declare
@Data1 int,
@Data2 int,
@Data3 int,
@Data4 int,
@Data5 int,
@Data6 int,
@Data7 int
select @Data1=count(*) from AccessStat where convert(varchar(10),visittime,112)=
(select distinct convert(varchar(10),dateadd(d,1-datepart(dw,visittime),getdate()),112) from AccessStat where datepart(ww,visittime)=datepart(ww,getdate()))
select @Data2=count(*) from AccessStat where convert(varchar(10),visittime,112)=
(select distinct convert(varchar(10),dateadd(d,2-datepart(dw,visittime),getdate()),112) from AccessStat where datepart(ww,visittime)=datepart(ww,getdate()))
select @Data3=count(*) from AccessStat where convert(varchar(10),visittime,112)=
(select distinct convert(varchar(10),dateadd(d,3-datepart(dw,visittime),getdate()),112) from AccessStat where datepart(ww,visittime)=datepart(ww,getdate()))
select @Data4=count(*) from AccessStat where convert(varchar(10),visittime,112)=
(select distinct convert(varchar(10),dateadd(d,4-datepart(dw,visittime),getdate()),112) from AccessStat where datepart(ww,visittime)=datepart(ww,getdate()))
select @Data5=count(*) from AccessStat where convert(varchar(10),visittime,112)=
(select distinct convert(varchar(10),dateadd(d,5-datepart(dw,visittime),getdate()),112) from AccessStat where datepart(ww,visittime)=datepart(ww,getdate()))
select @Data6=count(*) from AccessStat where convert(varchar(10),visittime,112)=
(select distinct convert(varchar(10),dateadd(d,6-datepart(dw,visittime),getdate()),112) from AccessStat where datepart(ww,visittime)=datepart(ww,getdate()))
select @Data7=count(*) from AccessStat where convert(varchar(10),visittime,112)=
(select distinct convert(varchar(10),dateadd(d,7-datepart(dw,visittime),getdate()),112) from AccessStat where datepart(ww,visittime)=datepart(ww,getdate()))
select data1=@data1,data2=@data2,data3=@data3,data4=@data4,data5=@data5,data6=@data6,data7=@data7
4 在 Asp 中 程序执行 存储 过程 如下:
<%
set Conn=server.createobject("ADODB.Connection")
conn.open connstr
set rst=server.createobject("ADODB.Recordset")
strSQL="getweekdata"
rst.open strSQL,conn,3,3
%>
<p>本周的访问情况如下:</p>
星期日<%=rst(0)%><br>
星期一<%=rst(1)%><br>
星期二<%=rst(2)%><br>
星期三<%=rst(3)%><br>
星期四<%=rst(4)%><br>
星期五<%=rst(5)%><br>
星期六<%=rst(6)%><br>
以上是实现 周 统计的斑竹 个人 的 方法,总体 感觉 速度比较慢,不知道大家有没有更好的方法
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -