Как извлечь день, месяц и год из даты?

Как извлечь день, месяц и год из даты?

13.01.2020 04:23:59 Просмотров 23 Источник

Я просто не могу понять, как получить День, месяцы и год из дат.

Вот он красноречивый

 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?

Является ответом!
Delena Malan

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;в верхней части файла.

https://stackoverflow.com/questions/59709608/how-to-extract-the-day-month-and-year-from-the-date/59717627#comment105599937_59717627
Это действительно хорошо и работает спасибо. все, что мне нужно сделать, это отразить их в моей datatable следующим образом [ 'data' => 'Month', 'name' =>> 'details.значит, что', 'название' => 'месяц' ], [ 'данных' => 'год', 'имя' подробнее=>'.indate', 'title' = > 'год' ],
Закрыть X