我有DB表,用IP列和DateTime标记记录请求.我试图以一种让我计算某个IP发出请求的天数的方式来获取这些数据.我正在使用Laravel的查询构建器.
到目前为止,这就是我所拥有的:
$data = DB::table('requests')
->groupBy('ip')
->select('ip',DB::raw('COUNT(DISTINCT created_at) as days'),DB::raw('COUNT(*) as requests'))
->orderBy('days','desc')
->take(50)
->get();
我的问题是时间戳也包含小时,分钟和秒.因此,“天数”计数与总请求数大致相同.我想只计算活跃的天数.
最佳答案
如果字段created_at是TIMESTAMP:
COUNT(DISTINCT FROM_UNIXTIME(created_at,'%Y-%m-%d')) as days
或者如果字段是DATETIME:
COUNT(DISTINCT DATE(created_at)) as days