2016-08-27 5 views
0

У меня есть более 16 000 данных с соответствующей датой. Я помещал эту дату в поле «дата» в моей таблице. Я хочу, чтобы показать эти группы данных по месяцам, я пытался, но мне не удалось, мой формат даты: date: "2015-08-31 02:12 "Laravel Group by Custom date Поле

Мой запрос:

$data = \App\Crawler::select([ 
     \DB::raw('count(id) as `count`'), 
     \DB::raw('Month(date) as month') 
    ])->groupBy('month')->get(); 

Я хочу:

{ 
    { 
    month: july 
    count: 100 
    }, 
    { 
    month: march 
    count: 100 
    } 
} 
+0

Перепишите вопрос. Каковы были ожидания? Что работало? Что не сработало? Дайте образцы данных и покажите, что они отличаются от результата, который вы хотели. – itachi

+0

Работайте умнее, а не сложнее. Нет причин для того, чтобы вы не использовали поле datetime ... – Devon

+0

@Devon, я распечатал данные из газетного киоска, так что я храню эти данные в поле «дата» –

ответ

0

Вы должны быть в состоянии получите имя месяца, используя функцию MySQL MONTHNAME().

Это должно работать, даже если у вас нет полной отметки времени.

$data = \App\Crawler::select([ 
    \DB::raw('count(id) as `count`'), 
    \DB::raw('monthname(date) as month') 
])->groupBy('month')->get(); 

 

[ 
    { 
     count: 3, 
     month: "July" 
    }, 
    { 
     count: 1, 
     month: "March" 
    } 
] 
+0

он возвращает '[ { количество: 16749, месяц: null } ]' –