在我的网站上,我使用时间戳来跟踪用户在我网站上的平均时长。使用“输入时间”和“退出时间”记录(使用AJAX更新)记录每个唯一IP。有了这个,我已经能够计算用户在我的网站上花费的平均时间长度。
但是,我希望能够计算每天,每周和每月的平均点击次数。我确定可以使用时间戳来实现这一目标,但我不知道如何解决PHP和MySQL中的问题。我在其他网站上看到MySQL有一些功能可以计算平均值,但我不知道如何提取每天/每周/每月的时间戳,所以甚至无法将任何数据传递给所述函数(一个或多个)。
我可以为每一天/每周/每月创建一个包含“开始”和“结束”时间戳的表,并使用循环/关联数组在两者之间提取值,但该方法似乎超出顶部且冗长且需要很长一段时间。有没有更简单的方法来实现这一目标?
我的表结构目前是:
+----------------+----------------+----------------+----------------+
| start | end | unique_id | id |
+----------------+----------------+----------------+----------------+
| 1358789867 | 1358789872 | (hash here) | 65 |
+----------------+----------------+----------------+----------------+
| 1358789966 | 1358789972 | (hash here) | 66 |
+----------------+----------------+----------------+----------------+
| 1358789998 | 1358790003 | (hash here) | 67 |
+----------------+----------------+----------------+----------------+
答案 0 :(得分:1)
对于每天的平均点击次数,您只需使用开始时间戳即可。但是,确切的语法取决于您使用的是timestamp
还是unix_timestamp
。第一个:
select date(timestamp_start), count(*)
from t
group by date(timestamp_start)
unix_timestamp
:
select date(from_timestamp(timestamp_start)), count(*)
from t
group by date(from_timestamp(timestamp_start))
按天进行分组,表示为date
。一旦你以这种格式获得它,其他函数,如year()
,month()and
date_format()`就可以用于其他时间段。