php – Laravel Simple Month Selection-ThrowExceptions

Exception or error:

y tried retrieve month from date field “fechas” (datetime type) where testing with SQL clause MONTH not works… thanks for replies

            $data = DB::table("ordenes")
              ->select(array('*', DB::raw('((cant_ped)*(precio_unit)) as sum_pedidos'), DB::raw('((cant_pend)*(precio_unit)) as sum_pends'), DB::raw('((cant_rec)*(precio_unit)) as sum_recibidos'), DB::raw('(((cant_pend)*(precio_unit)) + ((cant_rec)*(precio_unit))) as sum_importe')))
              ->where('cod_prov', '<>', 0)

              ///////////// line ERROR
              ->where('MONTH(fecha)', '=', '06')

              ///////->where('MONTH(fecha)', '=', '2014-06-20') ///test OK

              ->groupBy('cod_prov')
              ->skip(Input::get("jtStartIndex"))
              ->take(Input::get("jtPageSize"))
              ->get();
How to solve:

You could use the hide gem whereMonth:

DB::table("ordenes")
    ->whereMonth('fecha', '=', '06')
    ->get();

I highly recommend to you read the Builder.php source to search for another gems. 🙂
https://github.com/laravel/framework/blob/4.2/src/Illuminate/Database/Query/Builder.php

Answer:

You may try whereRaw method

$data = DB::table("ordenes")
    // ...
    ->whereRaw('MONTH(fecha) = ?', [06])
    // ...
    ->get();

Answer:

You could use something like this

$users = Model::whereMonth('created_at', '12')->get();

https://laravel.com/docs/6.x/queries#where-clauses

Leave a Reply

Your email address will not be published. Required fields are marked *