我有一个Laravel 8应用程序,我需要计算每天的应用程序总数,并以最有效的方式输出数据计数,例如,第一天500个应用程序,第二天1000个应用程序等等,这取决于每天有多少应用程序。
我使用DB::raw()
来计算我的行数,然而,Laravel的时间戳默认情况下包括小时、分钟和秒作为日期的一部分,所以这对我来说不起作用,我需要格式化日期以排除这一点,只包含日期。
我的查询似乎没有返回任何内容,也没有错误,所以我认为我的第一个DB::raw()
有问题,它似乎根本没有格式化为created_at
列,我缺少什么?
Application::whereBetween('created_at', [$from, $to])
->select(DB::raw('DATE_FORMAT("created_at, %Y-%m-%d")'), DB::raw('count(*) as applications'))
->groupBy('created_at')
->get();
您可以使用groupByRaw((
Application::whereBetween('created_at', [$from, $to])
->select(DB::raw('DATE_FORMAT(created_at, "%Y-%m-%d")'), DB::raw('count(*) as applications'))
->groupByRaw('DATE_FORMAT(created_at, "%Y-%m-%d")')
->get();
此外,您可以使用selectRaw((代替select(DB::raw(