我有一个数据库表记录了请求,其中包含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();
我的问题是时间戳中包含小时、分钟和秒,因此“天数”计数将与总请求数量大致相同。我只想计算活动天数。
COUNT(DISTINCT TO_DAYS(created_at)) as days
。 - Matteus HemströmSELECT TO_DAYS(950501);
看起来像是一个时间戳,但它实际上是代表日期1995-05-01
。TO_DAYS()
函数只能处理从0000-01-01
开始的日期。 - Glavić