admin

Laravel按日期时间格式按小时分组

sql

如何在一天中的某个小时对网站上的“注册”进行分组?

我已经尝试过了,但是没有用。

$regs = DB::table('registrations')
       ->select('createddatetime', DB::raw('COUNT(id)'))
       ->groupBy(DB::raw('DATEPART(hour, createddatetime)'), 'createddatetime')
       ->get();

我收到一个错误:

无法访问空属性。

我期望从查询中获得0个以上的结果。


阅读 156

收藏
2021-06-07

共1个答案

admin

您可以使用GroupBy函数使其正确

$regs = DB::table('registrations')->select('createddatetime', DB::raw('COUNT(id) as count'))->get();
$regs = $regs->groupBy(function($reg){
    return date('H',strtotime($reg->createddatetime));
});
echo '<pre>';
print_r($regs);
2021-06-07