我有一个表记录对我的站点的请求,其中包含一个 IP 和 DateTime 格式的时间戳。我运行一个查询来检查大多数这样的请求的 ip。
$ips = DB::table('requests')
->groupBy('ip')
->select('ip', DB::raw('COUNT(DISTINCT created_at) as days'), DB::raw('COUNT(*) as requests'))
->orderBy('requests', 'desc')
->take(50)
->get();
“天”属性应该计算一个 IP 地址活跃的天数。我的问题是我的时间戳是 Ymd H:i:s,这意味着,通过计算 DISTINCT 时间戳,我得到的计数与请求基本相同。因此,我需要一种仅按日、月和年计算时间戳的方法。
很感谢任何形式的帮助。