Laravel Simple Month Selection

45,604

Solution 1

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

Solution 2

You could use something like this

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

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

Solution 3

You may try whereRaw method

$data = DB::table("ordenes")
    // ...
    ->whereRaw('MONTH(fecha) = ?', [06])
    // ...
    ->get();
Share:
45,604
Alejandro Beltran
Author by

Alejandro Beltran

Full Stack Laravel Vue Vuetify MySql

Updated on July 18, 2022

Comments

  • Alejandro Beltran
    Alejandro Beltran almost 2 years

    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();