2016-08-09 6 views
0

У меня есть проблема в выборе месячной части только с datetime. У меня есть столбец с именем payment_date в транзакции таблицы. Я хочу select * from transaction и group by месяц payment_date. Я стараюсь с этим кодом:Выберите месяц только с даты в Laravel

$selectedYearTrx = $connectDB->table('transaction')         
    ->join('payment_channel','transaction.payment_channel_id','=','payment_channel.id') 
    ->select('id','payment_date', 'payment_channel_id','amount',DB::raw('MONTH(payment_date) as monthPayment')) 
    ->whereYear('payment_date', '=', $year) 
    ->where('status','=','S') 
    ->wherein('payment_channel_id', [1,2,3]) 
    ->where('currency','=','IDR') 
    ->orderBy('id', 'desc') 
    ->get() 
    ->groupBy('payment_channel_id','id','monthPayment'); 

Но, я получаю сообщение об ошибке в monthPayment в группе. Ошибка вызывает функцию-член groupby().

Может ли кто-нибудь помочь мне решить эту проблему?

спасибо.

ответ

0

Вы должны поставить -> Get() в конце кода)

$selectedYearTrx = $connectDB->table('transaction')         ->join('payment_channel','transaction.payment_channel_id','=','payment_channel.id') 
           ->select('id','payment_date', 'payment_channel_id','amount',DB::raw('MONTH(payment_date) as monthPayment')) 
           ->whereYear('payment_date', '=', $year) 
           ->where('status','=','S') 
           ->wherein('payment_channel_id', [1,2,3]) 
           ->where('currency','=','IDR') 
           ->orderBy('id', 'desc') 
           ->get() 
           ->groupBy('payment_channel_id','id','monthPayment'); 

должен быть

$selectedYearTrx = $connectDB->table('transaction')         ->join('payment_channel','transaction.payment_channel_id','=','payment_channel.id') 
           ->select('id','payment_date', 'payment_channel_id','amount',DB::raw('MONTH(payment_date) as monthPayment')) 
           ->whereYear('payment_date', '=', $year) 
           ->where('status','=','S') 
           ->wherein('payment_channel_id', [1,2,3]) 
           ->where('currency','=','IDR') 
           ->orderBy('id', 'desc') 

           ->groupBy('payment_channel_id','id','monthPayment')->get(); 
+0

О мой плохой, спасибо за это @Nour, Но, я получаю новую ошибку в 'DB :: raw ('MONTH (payment_date) как monthPayment')'. Я получил такую ​​ошибку: 'function month (timestamp without timezone) не существует'. Можете ли вы помочь мне справиться с этой ошибкой? –

Смежные вопросы