Laravel MySQL groupby создал_at с форматом даты без времени - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть столбец таблицы с именем created_at type datetime. и я хочу использовать groupby для created_at с только датой и без времени . Вот мой существующий код:

$data = BloodPressureHistory::where('user_id', $id)
    ->groupBy('created_at')
    ->orderBy('created_at', 'DESC')
    ->paginate(7);

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020
  $data = BloodPressureHistory::where('user_id', $id)
        ->groupBy(function ($item){
            return \Illuminate\Support\Carbon::parse($item->created_at)->format('Y-m-d');
        })
        ->orderBy('created_at', 'DESC')
        ->paginate(7);
0 голосов
/ 17 февраля 2020

Используйте groupBy(DB::raw()) и DATE_FORMAT вот так:

$data = BloodPressureHistory::where('user_id', $id)
                           ->groupBy(DB::raw('DATE_FORMAT(created_at,"%Y-%m-%d")'))
                           ->orderBy('created_at', 'DESC')
                           ->paginate(7);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...