我想列出过去24小时内每小时的最后一次访问次数。我认为以下代码会这样做,但我得到了下面的结果。知道我搞砸了吗?
[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[, 0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[, 0],[,0],[,0],[,0],[,0],
Dim ListHours()
HoursInCurrentDay = "24"
Redim ListHours(HoursInCurrentDay)
For Days = 0 To 23
ListHours(Hours) = Hours
Next
SQLARR2 = ListHours
For x = 1 to ubound(SQLARR2)
SQL = "SELECT COUNT(DISTINCT VISITORIP) AS TOTALVISITS"
SQL = SQL & " FROM STATS"
SQL = SQL & " WHERE DATEPART(hh, GETDATE()) = '"& SQLARR2(x) &"' AND DATEENTERED BETWEEN CONVERT(VARCHAR(10), GETDATE()-1, 101) AND CONVERT(VARCHAR(10), GETDATE(), 101)"
Set objVisits = objConn.Execute(SQL)
If objVisits.EOF Then
Else
List = List + "[" & SQLARR2(x) & "," & objVisits("TOTALVISITS") & "],"
End If
Next
Response.Write List
答案 0 :(得分:1)
查看提供的结果,我注意到SQLARR2(x)没有生成值。所有结果出现[,0],其中第一个(缺失)元素是小时,第二个元素是计数。我认为ListHours值没有被正确定义,因为Hours变量没有赋值(不管怎样都不在代码片段中。)
如果你改变了
For Days = 0 To 23
ListHours(Hours) = Hours
Next
到
For Days = 0 To 23
ListHours(Days) = Days
Next
应将正确的小时数添加到您的列表中。这也应该修复查询(和查询结果),因为SQLARR2(x)也用于构建动态sql。
我希望它有所帮助。
答案 1 :(得分:0)
你不能只使用一个简单的查询:
SELECT * FROM VISITS WHERE (VISIT.TIME > now - 24hours AND VISIT.TIME < now)