Laravel красноречивый запрос convert created_at datetime to date - PullRequest
0 голосов
/ 08 мая 2020

Я запрашиваю базу данных, чтобы получить результаты моего трекера:

$trackers = TrackerResult::all()
    ->where('tracker_id', $id)
    ->where('created_at', '>=', Carbon::now()->subDays(30));

return $trackers;

Но это возвращает мне поле created_at как datetime по умолчанию. Есть ли способ вместо этого назначить дату? ('Ym-d') формат.

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

вы должны использовать ДАТА функцию:

$trackers = TrackerResult::all()
    ->where('tracker_id', $id)
    ->whereDate('created_at', '>=', Carbon::now()->subDays(30))
->select('column1',column2',DB::raw('Date(created_at) as formattedCreateAt'))
->get();


return $trackers;
0 голосов
/ 08 мая 2020

Если вы хотите сравнить дату, попробуйте ->whereDate():

TrackerResult::all()
        ->where('tracker_id', $id)
        ->whereDate('created_at', '>=', Carbon::now()->subDays(30));

Вы также можете вручную отформатировать его, используя ->format():

TrackerResult::all()
        ->where('tracker_id', $id)
        ->where('created_at', '>=', Carbon::now()->subDays(30)->format('Y-m-d'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...