Как извлечь день, месяц и год из даты?
Я просто не могу понять, как получить День, месяцы и год из дат.
Вот он красноречивый
public function query(Detail $model)
{
return $model->newQuery()->leftjoin('fishers','fishers.id', '=','details.fisher_id')
->leftjoin('species','species.id', '=', 'details.species_id')
->leftjoin('purposes','purposes.id', '=', 'details.purpose_id')
->leftjoin('islands','islands.id', '=', 'fishers.island_id')
->leftjoin('preservations','preservations.id', '=', 'details.preservation_id')
->select('fishers.*','details.*','details.indate','islands.island_name','fishers.fisher_first_name','fishers.fisher_last_name','details.weight','species.species_name','purposes.purpose_name','preservations.preservation_name');
}
Я попробовал использовать Month(details.indate) as Month, Year(details.indate) as Year
, но, кажется, не работает. Я использовал дату в качестве типа данных для indate
и когда я делаю Month(details.indate) as Month
я получаю эту ошибку:
SQLSTATE[42S22]: столбец не найден: 1054 неизвестный столбец ' месяц (подробности.indate) ' в 'списке полей' (SQL: SELECT fishers.* , подробная информация.* , Месяц (Подробнее.indate) как месяц
Это мои столбцы datatable
protected function getColumns()
{
return [
[ 'data' => 'purpose_name', 'name' => 'purposes.purpose_name', 'title' => 'Purpose' ],
[ 'data' => 'fisher_first_name', 'name' => 'fishers.fisher_first_name', 'title' => 'Fisher Name' ],
[ 'data' => 'preservation_name', 'name' => 'preservations.preservation_name', 'title' => 'Preservation Methods' ],
[ 'data' => 'species_name', 'name' => 'species.species_name', 'title' => 'Species Name' ],
[ 'data' => 'island_name', 'name' => 'islands.island_name', 'title' => 'Island Name' ],
[ 'data' => 'weight', 'name' => 'details.weight', 'title' => 'Weight' ],
[ 'data' => 'indate', 'name' => 'details.indate', 'title' => 'Month' ],
[ 'data' => 'indate', 'name' => 'details.indate', 'title' => 'Year' ],
];
}
кто-нибудь может мне помочь, как это сделать?
У вопроса есть решение - Посмотреть?

Источник

Источник

Источник

да это правильно
Источник

Источник
Ответы - Как извлечь день, месяц и год из даты? / How to extract the Day, Month and Year from the date?
Является ответом!

13.01.2020 04:29:28
Вы должны использовать функцию DB::raw
для выбора выражений с помощью Laravel Eloquent.
Например:
return $model->newQuery()->...
->select(DB::raw('Month(details.indate) as Month'), DB::raw('Year(details.indate) as Year'), 'fishers.*','details.*', ...)
Обязательно добавьте use DB;
в верхней части файла.

Это действительно хорошо и работает спасибо. все, что мне нужно сделать, это отразить их в моей datatable следующим образом [ 'data' => 'Month', 'name' =>> 'details.значит, что', 'название' => 'месяц' ], [ 'данных' => 'год', 'имя' подробнее=>'.indate', 'title' = > 'год' ],
Помочь в развитии проекта: